2015-08-15 54 views
2

我正在使用自動縮放比例的azure工作者角色。當運行多個實例時,性能很好。但有些功能不應該在同一時間運行。所以我需要做一個方法或任務作爲同步,或者需要鎖定,直到另一個完成..需要跨多個天藍色的實例實現此功能。或者特定的功能應該只在一個實例中運行。如何跨多個實例天青工作者角色使用同步方法?

如何實現這個?

謝謝

回答

1

由於每個實例都獨立運行,我不認爲製作方法或任務同步是要幫助你,因爲每個方法或任務將在每個實例同步運行。

請仔細看看Leader Election Pattern(當您在那裏時,也請查看其他雲模式)。基本上這個想法是,每個實例都會爲了執行一個方法而戰(爲了缺乏更好的單詞:)),但只有一次實例纔會成功。將成功的實例是Leader並將執行該方法。有兩種方法,通過它可以實現這一點:

  1. 租賃斑點 - 有一個在Blob存儲一個blob和執行方法之前,每個實例都將試圖獲得對這個團塊的租賃。只有一個實例會成功。獲取blob上的租約的實例將執行此方法。
  2. 獲取消息 - 有關要執行的方法的信息作爲消息存儲在Azure隊列中。所有實例將嘗試從此隊列中發送GET消息,但只有一個實例將GET消息。獲取消息的實例將執行該方法。
相關問題