我正在创建 Azure WebJob 来处理 Azure 表中的数据,并且当存在多个 WebSite 实例(即 WebSite 横向扩展)时,需要使用一些处理同步。
我可以从基础设施中获取此类信息(当前正在运行多少个 WebApp 实例)吗?
最佳答案
这篇博文提供了有关获取 Azure 网站实例数量的信息 - http://blog.amitapple.com/post/2014/03/access-specific-instance/
特别是对于连续的 WebJob,有一个 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
。
对于这两种情况,您都需要对请求进行身份验证。
但是,如果您需要在网站/网络作业实例之间锁定,则可以使用网站的共享文件系统,因为所有实例都访问相同的文件系统(d:\home\...
) 可以使用文件系统锁来同步。
以下是 kudu 的示例用法: https://github.com/projectkudu/kudu/blob/master/Kudu.Core/Infrastructure/LockFile.cs
关于azure-web-app-service - 在 Azure WebApps(以前的网站)中,我可以获得运行的实例数量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29960501/