2013-07-08 98 views
0

我有一個工作角色(WR-1)將消息放入Azure隊列中。 WR-1計劃使用Quartz.NET。
我有另一個工作角色(WR-2)處理Azure隊列上的消息。
一旦排隊活動結束,我想從WR-1中觸發WR-2。
我找不到任何有關如何從另一個輔助角色實例化輔助角色的材料。 這可能嗎?如何做呢?從工作角色實例化工作角色

回答

2

如果您的工作人員角色是不同的應用程序,則可以使用Service Management API爲WR-1創建WR-2的新部署。你需要做的是將WR-2的包和配置文件放入blob存儲中,並且當WR-1將所有消息放入隊列中時,將創建一個新的WR-2部署。要使用Service Management API以編程方式創建部署,請參閱此處:http://msdn.microsoft.com/en-us/library/windowsazure/ee460813.aspx。但是,您需要確保一旦WR-2完成所有數據後,它將被WR-1銷燬,這樣您就不會繼續收費。

其他可能性是運行你的工作者角色實例在Master/Slave配置中運行。假設有2個工作角色正在運行。其中一個實例是將數據放入隊列的Master實例,一旦將數據放入隊列中,它將在其他隊列中寫入一條消息,指示Slave它已完成寫入數據。 Slaves將不斷地輪詢這個其他隊列,一旦他們發現Master已經完成數據的放置,他們可以開始從包含實際數據的隊列中獲取數據並處理它們。要決定哪個實例將是Master,哪些將是Slave,則可以使用Lease Blob功能。能夠在BLOB上獲得租約的實例將爲Master,而其他實例爲Slave

+0

看過兩個選項後,它看起來像第一個選項在天藍定價模型方面具有成本效益。糾正我,如果我錯了。 – Seenu

+0

我想了解您提到的條件背後的原因「如果您的工作人員角色是不同的應用程序」,如果它們來自同一應用程序,它有什麼不同? – Seenu

+1

關於您的第一條評論,如果您正確創建和銷燬您的WR-2,第一選項便宜。如果你離開WR-2運行,那麼你將會招致不必要的費用。關於第二條評論 - 通過不同的應用程序,我的意思是你的工作者角色(WR-1和WR-2)採用兩種不同的解決方案,而不是一種。 –