celery - 如何知道 Celery 的所有任务都完成了?
问题描述
我在这里遍历所有城市并异步创建芹菜任务(city_explore)。完成所有任务后,我需要在 db 中将状态更新为“Explore Completed”。如果它是正常功能,它可以很容易地完成,但是当任务在 celery 中运行时如何做到这一点?我怎么知道每个城市的所有任务何时完成并更新数据库中的状态?请帮忙。
这是各自的代码
cities = ['a', 'b', 'c']
for city in cities:
city_explore.delay(name, distance)
@app.task
def city_explore(name, dis):
explorer(name, dis)
解决方案
是的,你可以这样做,但是你必须编写任务状态的轮询代码......更惯用的方法是使用Celery Workflows。一个和弦原语可能对你来说已经足够好了。
推荐阅读
- c# - 从 DBPedia 服务获取信息
- vue.js - vue.js test-utils 为什么我的 onSubmit 函数 mock 没有被调用?
- python - 大型数据集上的 predict_on_batch() 内存错误
- javascript - Yargs 帮助不显示所有帮助选项
- xamarin - 如何在本机 Xamarin.Mac 中嵌入 Xamarin.Forms?
- ios - iOS 使用嵌套请求加载表数据
- javascript - React 中显示接收数据的问题
- android - 在使用对讲时通过滑动在标题之间导航
- r - 输出矩阵中每一列的第一个元素的行索引以满足逻辑条件
- python - 将 SQLAlchemy scoped_session 与 Celery 一起使用