2017-10-18 47 views
0

該程序監聽Redis隊列。如果Redis中有數據,工作人員就會開始工作。所有這些工作必須同時運行,這就是爲什麼每個工作人員都要監聽一個特定的Redis隊列。運行使用Redis作爲隊列的20個Python工作人員是否很常見?

我的問題是:運行超過20名工作人員來收聽Redis是否很常見?

蟒/usr/src/worker1.py 蟒/usr/src/worker2.py 蟒/usr/src/worker3.py 蟒/usr/src/worker4.py 蟒/ usr/src目錄/ worker5.py .... .... 蟒蛇/usr/src/worker6.py

+0

這似乎是一個無法回答的問題。是的,它是可能的,如果它符合你的目的,那就去做吧。但這是常見的嗎?可能不會。 –

+0

@ChrisCharles這就是你用芹菜得到的最多的東西(在這種情況下,使用redis作爲broker,但這不是主要的IMHO),而使用像芹菜這樣的任務隊列變得相當普遍。 –

+0

我想這也取決於你如何定義常見的。在世界上運行的所有python進程中,大多數不會像那樣運行:) –

回答

0

如果你的員工需要做數據的長期的任務,這是一個解決方案。但每個數據必須由一名工作人員處理。

通過這種方式,你可以伊斯利(無螺紋等。)分配了任務,它的更好,如果你的工作人員並不在同一服務器

0

工作有多個工作進程(當我的意思是「多個「我說的是數百個或更多),可能運行在不同的機器上,從工作隊列中獲取作業現在的確是一種常見模式。甚至有專門用於這種工作流程的整個軟件包/框架,例如Celery。

不太常見的是試圖以看似臨時的方式從頭開始編寫整個任務隊列系統,而不是使用像Celery,ZeroMQ或類似的專用任務隊列系統。

相關問題