2014-12-04 81 views
1

每10分鐘Azure中的多個工作角色設置爲處理一組作業(100+)。有些工作是獨立的,但其他工作則不是。對於(簡單的)例子,作業B必須在發送作業B之前處理,發送和確認。工作角色中的作業之間的Azure依賴關係

可以將獨立作業放在隊列中分發給工作人員角色。我想知道排隊是否可以用於依賴性工作,以便制定一致的解決方案。

編輯:我用了一個太簡單的例子。作業A和B都包含幾個相關的消息。這些消息將被分配給n個工作角色並將被單獨發送,所以當n個工作角色獲得acks時,作業A完成,然後發送作業B的消息(分發給m個工作角色並由其處理)。 我認爲在這種情況下唯一的選擇是讓一個工作人員角色處理工作A和B,否則需要一個複雜的工作間角色同步機制。

+0

只有當你的一個工人角色確認完成作業A時,纔會發送作業B. – Abhijeet 2014-12-04 08:40:54

+0

那麼爲什麼你會關心誰來處理作業B. – Abhijeet 2014-12-04 08:41:27

回答

1

我認爲你可以使用隊列來促進這一點。一種可能的解決方案是在工作A完成後讓工作人員在同一隊列或其他隊列中寫入另一條消息。因此,工作人員將爲作業A提取消息,處理作業,寫入另一條消息,即作業A完成並刪除原始消息。現在另一個線程將接收消息並開始處理作業B.如果消息發佈在同一個隊列中,則消息需要傳達它是多作業鏈的一部分,並且已完成哪些步驟。如果消息被髮布在另一個隊列中(例如作業B的特定隊列),那麼你的代碼就會知道這個消息是針對作業B的,並且應該相應地處理它。