我有芹菜3个任务的任务..芹菜开始时其他任务都已完成,
celery_app.send_task('tasks.read_cake_recipes')
celery_app.send_task('tasks.buy_ingredients')
celery_app.send_task('tasks.make_cake')
两个read_cake_recipes
和buy_ingredients
没有任何依赖关系,任务make_cake
可以运行之前,但双方read_cake_recipes
和buy_ingredients
需要完成。
make_cake
可以在前两次启动后的任何时候运行。但make_cake
不知道其他任务是否已完成。因此,如果read_cake_recipes
或buy_ingredients
花费太长时间,则make_cake失败。
链接任务在这里似乎不起作用,因为make_cake
有一个以上的依赖关系。
我该如何启动任务make_cake
,然后让它等待/等待等,直到其他两个任务先完成?
我的保存优雅是,read_cake_recipes和buy_ingredients将结果保存到数据库,如果make_cake以某种方式知道哪些成分或食谱可以检查它,也许?
有任何理由'read_cake_recipes'和'buy_ingredients'是独立的任务是什么?即它们是否有时在没有'make_cake'的情况下运行? – 2014-08-29 22:14:47
@CaseyKinsey是的,这些任务有时在没有make_cake的情况下运行。 make_cake可能永远不会运行。但是如果它确实被调用,那么它需要将其他任务结果放在一起,并且做一个蛋糕。 – Prometheus 2014-08-29 22:18:11