我有一個創建了大量就業機會的應用程序,我希望能夠處理多個服務器上,這些工作分配負載分配工作負載作業隊列
每個任務都有一個類別,並在所有工作一個類別進入一個特殊的順序,所以如果與類別A相關的工作j1在工作j2之前也與類別A相關,那麼j1必須在j2之前處理,但是與類別B相關的工作j3可以在兩者之間進行處理。
我有一個如何實現這個兩個想法:
製作一個隊列的所有作業,並有幾個工人從這個隊列中拉出。當一個工人抽出一個與A類有關的工作時,它必須鎖定與A類有關的工作,所以沒有其他人開始處理這些工作。它會在完成後釋放鎖。
爲每個類別設置一個隊列,然後告訴工作人員從哪個隊列中抽取。如果只有一名工人負責類別隊列,則不必鎖定它。一名工人可能會負責許多隊列。
我想用一個隊列,並沒有指定特殊隊列每個工人的想法,但我不喜歡執行某種信號的每個類別的想法。
到目前爲止,我已經使用Redis進行排隊,取得了巨大的成功,但我已經開始研究具有更多模式的zeromq,可能可以幫助我。
這樣做的最好方法是什麼?你推薦什麼工具/庫?