我有一个重复的任务,每15分钟运行一次。
@app.on_event("startup")
@repeat_every(seconds=60 * 15, wait_first=True)
def myFunction(db=SessionLocal()) -> None:
test(db=db, for_test=False)一开始是很正常的。但过了一段时间(比如5-6小时),它就会停止工作,再也不会重复任务了。当我在云运行中检查日志时,我会看到以下消息;
RuntimeError: coroutine ignored GeneratorExit 也是这样的原木;
2022-09-29 10:04:04.263 EETTask was destroyed but it is pending!
2022-09-29 10:04:04.263 EETtask: <Task pending name='Task-850' coro=<H2Protocol.send_task() running at /usr/local/lib/python3.9/site-packages/hypercorn/protocol/h2.py:148> wait_for=<Future cancelled> cb=[_gather.<locals>._done_callback() at /usr/local/lib/python3.9/asyncio/tasks.py:767]>我必须部署一个新的修订版,以使重复的任务再次工作。我想知道在这种情况下该做些什么,以及为什么会发生这个错误。在本地主机上似乎没有这样的问题。
我应该使用来代替FastApi的重复任务吗?
发布于 2022-10-09 17:11:22
这个问题是因为我的启动脚本而出现的。
我没有注意到,但我在生产中使用了--reload标记。我真不敢相信。
在我为生产编辑了启动脚本之后,一切都进行得很好。
https://stackoverflow.com/questions/73892258
复制相似问题