2017-06-14 64 views
0

我真的很困惑這裏作爲celery的新手,並希望有一些消息broker作爲rabbitmq芹菜處理任務依賴關係當客戶端(ipython)使用芹菜畫布提交DAG(工作流程)基元,如鏈,和絃和組。假設我有一個DAG,其中A - >(B,C) - > D(鑽石DAG),其中A首先運行,然後B和C並行運行,B和C的輸出將用作在D.誰在芹菜處理任務依賴關係 - rabbitmq

輸入我能夠想出一個DAG即

wf = (A.s(2, 2) | group(B.s(), C.s(25)) | D.s(1000)).delay() 

我的理解是:1)客戶端提交DAG 2)芹菜此DAG轉換成消息(通常以JSON)3 )將此消息發送給消息代理4)消息代理對依賴關係有一些想法? (不確定),並基於依賴關係將任務放入隊列中5)已訂閱隊列的工作人員選取任務並執行。

我很困惑,在這裏確定工作人員是誰,以確保工作人員根據依賴性執行任務。芹菜工人有關於依賴性的想法嗎?經紀人有一些有點元數據管理嗎?

這裏的任何輸入將不勝感激。謝謝!

回答

0

實際上芹菜使用海底下的kombu作爲消息傳輸機制,而芹菜不同作業的芹菜使得芹菜的高級別框架更少依賴於高級框架而不知道最終用戶/開發者的許多/多樣任務。你只是使用芹菜任務和其他人,並在帽下特定的圖書館,如kombu,檯球等做他們的任務。你最好檢查芹菜的源代碼以獲得更多的見解。

+0

我已經開始研究源代碼。你是否暗示Kombu是理解工作流程的人,知道將什麼消息放入隊列以及接下來要執行什麼? – yguw