2016-09-26 51 views
1

在我們的發展,我們面臨以下情形: 一個事件產生了一定的順序生成事件鏈: 比方說 創建項目1,更新第1項,完成項目1, 創建項目2,更新項目2,完成項目2.兔MQ事件的併發性和同步

請記住,項目1和2的事件是並行分派的。 我們需要爲每個項目順序處理項目1和2的事件,而不會阻止無關的操作,例如創建項目1並創建項目2可以並行運行,而CreateItem1和更新項目1必須按順序運行。

主要問題是我們如何在不爲每個項目創建專用隊列的情況下實現此類行爲? 項目數量未知。 有多個生產者和多個消費者處理事件。

回答

1

答案很簡單:不要平行排放這些事件。如果Update Item事件必須在Create Item事件之後進行處理,那麼Create Item消費者在處理Create Item事件後應該發出Update Item事件是自然的。

順便說一句:有一個單獨的隊列爲每個項目只有當你有這樣的隊列上的一個消費者,如果你可以保證事件按正確的順序發射的作品。