2010-03-25 56 views
0

我寫了一個PHP shell腳本,它包含了使用'at'命令在centOS中排隊的作業。 隊列作業的時間和內容可能會有所不同,這意味着系統需要保留相當多的作業。 使用cronjob設置應用程序邏輯也有點困難。 centOS中的隊列作業數量是否有限制,或者是否有任何其他的排隊作業方式?在centOS中的PHP隊列作業

回答

0

您可能會考慮寫入「分佈式」隊列,如droprAMPQ的實現。

+0

其他方式如何?如果排隊工作沒有限制,我想使用它。 – 2010-05-31 09:16:48

+0

消息隊列本質上是無限的,唯一的缺點是你需要編寫一個程序從隊列中讀取並啓動作業。或者,您可以使用數據庫來達到相同的目的(IE,將作業寫入數據庫,然後從中讀取另一個進程)。這將很容易設置,因爲你使用的是PHP,並且會支持大量的作業。 – 2010-05-31 12:55:14

0

很多作業流程可能會降低整個服務器的速度。如果它們中有很多是同時開始的(或者只是同時工作),就可能發生這種情況。如果你有20個硬工作進程,只有4個CPU核心,他們會爭取CPU,它應該經常切換它們。

我建議使用消息隊列和工作者池。您可以從文件系統隊列(或基於MySQL)開始。你只需要安裝一個php lib,不需要額外的服務。如果需要的話,稍後可以用較少的努力切換到真正的消息隊列代理。

我會推薦使用enqueue庫。