,我的場景是我有一個由多個待處理文檔組成的集合 - 一次一個文檔。處理文檔需要相當長的時間,處理整個集合需要花費很多時間。因此,我將有多個同時處理同一個集合的「工作人員」。每一個需要做這樣的事情,如何讓多個進程讀取相同的文檔
(A)獲得下一未處理的文件,
(B)進行處理,
(C)標記文檔處理,然後繼續。
如何確保同時進程不讀取相同的文檔?我不知道關鍵值是什麼,所以我不能說process_A應該從1開始,process_B從100萬開始。另外,我想添加儘可能多的流程以便於管理,因此說一個前進而另一個後退是不現實的。
我問關於MongoDB,因爲這是我使用的。我想象可能會問一個關於SQL數據庫的問題。
我懇求任何想幫助的人,而不是專注於改變無論外在原因都是給定的情景。
謝謝
您可以使用跳過和限制按照您的喜好對集合進行分區並將工作分配給這些分區嗎? – TeTeT
@TeTeT跳過可能不是很好的選擇,因爲內部跳過仍然需要處理它跳過的所有文檔。會非常低效。 –
在關於這個問題的評論中有一個討論。我懷疑它也會在這裏工作。也許有趣? [連續運行Cron作業](http://stackoverflow.com/questions/32700321/running-a-cron-job-continuously#comment53244570_32700321) –