2015-12-17 41 views
1

我寫過一段代碼,它將拉取數據庫行並處理它。 現在我正在選擇100行,並將狀態設置爲ProcessInprogress,並且在成功完成100行處理後,逐個處理。 此過程計劃在石英下每2分鐘。多節點行爲

問題:當我的代碼部署在多個節點中時,我必須小心謹慎,以便此過程能夠成功運行。所以我應該避免在另一個節點中重複數據處理。

請建議:)

+0

我在想如果你使用select進行更新,請鎖定這些行,以便相同的行不會被另一個代碼實例使用。 – daemon54

+0

是的,我可以鎖定記錄,但其他進程將等待鎖定釋放到相同的記錄,直到超時。我認爲它不會用於下一個100條記錄。 – user4325796

+0

嗯。這可能是真的。需要找到一些處理它的好方法。有些數據庫可以跳過鎖定的記錄。你用什麼數據庫btw? – daemon54

回答

0

現在我被鎖在投票過程中獲取的記錄,使相同的記錄不應該被其他實例或節點的投票過程中獲取。但是這正在使其他進程等待釋放鎖。

有什麼我可以做的,以便其他進程應該去下100個記錄獲取而不是等待鎖。

請建議是否有任何更多的建議,以處理java中運行的數據庫輪詢過程的多個節點的行爲。

謝謝