我有芹菜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