2017-04-17 51 views
0

我目前有一個需要監視的服務器/網站列表,每分鐘一次。數千個任務的最佳循環隊列?

有沒有一種很好的方法來循環通過他們每一分鐘,有能力添加/刪除服務器/網站在任何時候?

我已經看過RabbitMQ,但似乎不可能每分鐘一貫添加和使用任務。這些任務存儲在MongoDB中,或許我想通過MongoDB查詢另一個解決方案,但這看起來效率不高。

回答

0

我不認爲消息經紀人是必要的。我所要做的就是從數據庫中獲取任務,並在程序開始時將它們存儲在內存中。創建任務類併爲數據庫中的每個任務複製它,並將所有這些任務對象存儲在任務數組中。

將服務器/網站列表存儲在數據庫中。

讓您的程序每分鐘查詢該數據庫中的服務器/網站列表以獲取最新的服務器/網站列表。您可以隨時進入您的數據庫並刪除或添加服務器/網站。

假設您想要爲每個服務器/網站執行所有任務,您基本上會爲每個服務器/網站執行任務數組中的所有任務。它本質上是for循環內的for循環。

如果這個假設是不正確的,你會明白我的意思。

希望這會有所幫助。