我正在創建用於處理Azure表中的數據的Azure WebJob,並且在存在多個WebSite實例(即WebSite被縮小)時需要使用某些處理的同步。在Azure WebApps(以前的WebSites)中,可以獲取運行的實例數量嗎?
我可以從基礎架構獲得這樣的信息(WebApp當前正在運行多少個實例)?
我正在創建用於處理Azure表中的數據的Azure WebJob,並且在存在多個WebSite實例(即WebSite被縮小)時需要使用某些處理的同步。在Azure WebApps(以前的WebSites)中,可以獲取運行的實例數量嗎?
我可以從基礎架構獲得這樣的信息(WebApp當前正在運行多少個實例)?
這個博客帖子有上得到一個Azure的網站的實例數量信息 - http://blog.amitapple.com/post/2014/03/access-specific-instance/
專門爲連續WebJobs有一個API調用,給你一個具體的WebJob的所有實例的狀態,你需要使用下面介紹的API:https://github.com/projectkudu/kudu/wiki/WebJobs-API#get-a-specific-continuous-job-by-name
https://{sitename}.scm.azurewebsites.net/api/continuouswebjobs/{jobname}
而且屬性被稱爲detailed_status
。
對於這兩種情況,您都需要驗證請求。
但是,如果您需要的是在網站/ webjob實例之間鎖定,則可以使用網站的共享文件系統,因爲所有實例都可以訪問同一個文件系統(d:\home\...
),所以可以使用文件系統鎖進行同步。
這是kudu的樣本用法: https://github.com/projectkudu/kudu/blob/master/Kudu.Core/Infrastructure/LockFile.cs