我想問已經撕裂我的心一會兒的概念問題。這裏可能沒有正確或錯誤的答案,但我希望能更好地理解我的選擇。
情況: 我有一個Windows Azure應用程序。它由一個具有一個實例的ONE Web角色和一個具有兩個實例的工作者角色組成。
主要關注工作者角色。它實現Quartz.NET調度程序,執行從CRM系統獲取信息的任務,從中創建表並將其上傳到FTP服務器,例如每8小時一次。很簡單,沒有什麼幻想。
如果有人需要它在8小時的間隔內運行,則Web角色用於手動觸發作業。簡單的用戶界面,幾乎一個按鈕。
但是我希望有可能從Web角色更改工作角色的一些配置選項。例如目的地FTP服務器的憑證和作業的時間表,例如讓它每小時運行一次而不是8小時。如果角色脫機,配置不需要保留。目前配置是靜態類中的一個。
這似乎不是一個問題,如果我運行一個輔助角色實例:例如,我會通過隊列發送Web角色的消息並更改一些靜態變量。但令我困惑的是,消息隊列只能由一個角色實例提取,而不能同時實現。所以我最終會讓這項工作每隔8小時運行一次,每小時運行一次。
有什麼辦法可以通知兩個實例配置需要改變嗎?
謝謝!關於選項一:該方法是否會定期檢查「RoleEnvironment.Changing」事件? 我寧願不使用服務巴士,因爲如果我理解正確,它會帶來額外的成本,我寧願將它們保持在最低限度。 – 2012-08-04 09:17:41
你只需要設置一個事件處理程序並等待它被調用。沒有循環。你只需要仔細編碼你如何處理它(或者乾脆讓你的角色實例重新啓動)。更多信息[這裏](http://msdn.microsoft.com/en-us/library/windowsazure/gg432963.aspx)和[這裏](http://technet.microsoft.com/en-us/library/microsoft .windowsazure.serviceruntime.roleenvironment.changing)。 – 2012-08-04 13:26:08
非常有意義。這就是我將要做的。再次感謝你。 – 2012-08-05 19:52:09