2015-06-27 65 views
4

通過閱讀各種文檔和博客,聽起來像OnStart是您的角色開始接收流量之前初始化對象和事物所需的位置。 但是,我不清楚如果有一種情況可以使用同一個worker角色類的實例多次調用OnStart?Azure Worker角色 - 使用OnStart()與構造函數進行一次初始化

例如我有一個注入容器和一個數據庫連接,應該只創建一次。我需要確保角色不能停止並重新開始,將所有當前對象留在內存中。在這種情況下,使用worker角色構造函數初始化對象似乎會更好。

回答

5

OnStart()RoleEntryPoint類的成員,以及需要重寫的方法)僅在角色實例生命週期中調用一次。返回true,然後調用Run()。返回false並且角色實例被回收(重新啓動)。

請記住,在將角色實例添加到負載平衡器之前調用OnStart()。這使您有機會在流量開始前進行初始化。

FYI Here's more info關於角色生命週期。

+0

謝謝......我不清楚運行是否可以通過從門戶重新啓動角色,發生錯誤等時再次調用相同的實例,但是這回答了我的問題:) – KingOfHypocrites