我有一個很長的mysql隊列。我有1個工作者腳本處理每個隊列。通過長時間運行多個工人
但是當這個工作者正在運行時,數據庫可能會被更新或者得到新的行插入。
示例工人腳本
get_current_queue = SELECT from queue...
while(get_current_queue) {
update_current_row_from_queue "processing"
//some cpu intensive processing here that takes varying amount of time.
}
的問題是,工人腳本需要不同的時間量取決於在給定時刻的隊列有多長,並且每個CPU的處理花費的時間(視頻轉換爲前)。
因此,當我在第一個工作人員運行時運行另一個工作人員腳本時,第一個工作人員在隊列數據庫中尚未標記爲「處理」的隊列將落入第二個工作人員待辦事項列表。
我不知道如何解決這個問題。
當一個工人運行時,我需要一些方法來標記這個批處理,所以只有這個工人會運行它。
並且在運行時,插入新行後,如果我選擇啓動另一個工人,它可以工作。
好吧,你是指每行的工人?在任何特定時間運行的員工的最高門檻是多少?如果有很多工人每人只運行一行,那麼效率會不會更低?我想聽聽更多關於這個細節的信息,這很有趣。 – ggggggggg