2017-08-12 111 views
0

我正在研究一個應用程序,其中多個客戶端將寫入隊列(或隊列),並且多個工作人員將處理隊列中的作業。問題在於,在某些情況下,工作是相互依賴的。 「依賴」,我的意思是他們需要按順序處理。隊列:如何處理相關作業

這通常發生在實體由用戶創建,然後不久之後被刪除。顯然,我希望第一份工作(即創建)在刪除之前進行。問題是創建可能需要比刪除更長的時間,所以我不能保證在刪除作業開始前它會完成。

我想這種類型的問題在異步處理中相當普遍。有什麼策略可以解決它?我知道我可以給隊列分配優先級來控制處理順序,但在這種情況下這還不夠好。我需要具體的保證。

回答

1

這可能不適合您的模型,但是我使用的模型在創建功能完成之前不提供刪除功能。

當Create_XXX命令完成時,它負責引發XXX_Created事件,該事件也被放入隊列中。然後可以處理該事件以啓用刪除功能,從而允許刪除新創建的項目。

命令完成的過程,然後引發處理的事件並創建另一個命令是確保命令按照所需順序處理的常用方法。