2
我有一個將某些操作委託給芹菜任務的應用程序。這些操作必須由不同的工作人員執行,具體取決於某些參數。我曾考慮過使用隊列來實現它。我的想法是這樣的:工作人員尋址策略
- 客戶端請求從一個特定的消息
queue1
- 如果
worker1
(用於queue1
專門負責)已經積極的行動,它將如果沒有工人聽來處理請求 queue1
,全體工人(worker-main
)將實例化worker1
。該請求將被廢棄爲worker1
。一段時間後worker1
將自行關閉,而不使用
我芹菜的理解是有限的,我有幾個問題。
- 如何實現芹菜
worker-main
?:這是一名傾聽所有隊列的員工,但優先級低於其他任何員工。也就是說,只有在請求不被其他工作人員採用時纔會起作用。 woker-main
如何創建worker1
?一旦創造者,worker1
必須關聯到queue1
,具有比worker-main
更高的優先權?- 請求是否可以從
worker-main
轉發到worker1
?答覆應直接發送給客戶。 worker1
可以關閉嗎?
可以看到架構的圖形化描述,我想在下面的圖片來實現:
我不確定這是我需要的。在我的情況下,芹菜任務必須正在運行,並且必須在**任務內從**創建工人。沒有用戶干預*和*沒有shell命令。工作人員的人數可能會增長很多,最終會增加到數百名工人,每個工作人員都會聽到不同的隊列。正如你所說的,尋址不一定是基於隊列的:我只需要一種方法將消息發送給某個工作人員,並且讓全體工作人員意識到工人失蹤並在飛。 – dangonfast
另外:我不是在談論一個單一的任務。客戶端可以向工作人員請求不同的任務(目前我有30多個不同的任務需要由工作人員執行)。所有這些任務請求必須被'worker-main'嗅探,並且如果'worker1'('worker2',...)沒有運行,它必須被實例化,並且任務請求被轉發。 – dangonfast