我有2個處理程序的運行順序刪除和重新排序圖片,並希望獲得最佳解決方案的一些建議。CQRS按特定順序運行處理程序
在用戶界面上的一些照片被刪除,用戶點擊該按鈕刪除。整個流程中,刪除命令直至實際刪除物理文件的事件處理程序開始。
然後立即用戶對剩餘的圖片進行排序。從重新排序命令到文件系統的重新排序事件處理程序的新流程再次觸發。
已經有一個併發問題。沒有完成刪除操作,重新排序無法正確應用。目前這個問題是通過某種鎖來處理的。臨時文件將在刪除流程結束時創建並刪除。當該文件存在時,另一個線程(取決於用戶操作的重新排序或刪除)將等待。
這不是一個理想的解決方案,並想改變它。 潛在的解決方案必須也非常快(當然目前的解決方案並不是一個快速的解決方案),因爲UI在訂購結束時通過JSON調用進行更新。
在以後的實施,我們正在考慮使用事件的隊列但目前我們都還卡住了。
任何想法,將不勝感激! 謝謝,mosu'!
編輯:我們已經被使用在客戶端Javascript腳本數據管理解決 其他最終一致性問題。基本上樂觀和欺騙用戶! :) 我開始相信這也是這裏走的路。但是,我怎麼知道文件系統中的數據何時更改?
您正在使用CQRS和一個事件中心架構,最終保持圖片庫的一致性?我相信你有你的理由,我真的好奇他們是什麼。 CQRS並不適合所有的事情。KISS還是應該的。 –
不是。圖庫只是一個車輛管理網站的一部分。到目前爲止,我們沒有在這種併發環境中使用某些資源的情況。另外,到目前爲止,CQRS對我們來說非常有用。我們仍在學習,並希望向其他用戶學習! – mosu