芹菜中的永久任务?



我正在构建一个django应用程序,我使用相机捕获图像,分析它们,将元数据和分析结果存储在数据库中,最后将数据呈现给用户。

我正在考虑使用 Celery 来处理捕获图像然后处理它们的后台过程:

app = Celery('myapp')
@app.task
def capture_and_process_images(camera):
while True:
image = camera.get_image()
process_image(image)
sleep(5000)
@app.task
def process_image(image):
# do some calculations
# django orm calls
# etc...

第一个任务将永久运行,而第二个任务应该需要 ~20 秒,因此一次将处理多个图像。

我还没有在网上找到任何以这种方式使用芹菜的例子,所以我不确定这是否是不好的做法。

可以/应该使用芹菜来处理永久运行的任务吗?

谢谢。

在 Celery 中运行永久任务是在实践中完成的。看看守护进程,它本质上在没有用户交互的情况下运行一个永久任务,所以我不会说在你的情况下永久运行它有什么问题。

让芹菜任务无限运行对我来说似乎不是一个好主意。
如果您要以一定的时间间隔捕获图像,我建议您使用一些类似 cron 的脚本每 5 秒获取一次图像并启动芹菜任务来处理它。
另请注意,最佳做法是避免在芹菜中同步子任务,有关更多详细信息,请参阅文档。

相关内容

  • 没有找到相关文章

最新更新