我正在创建 Azure WebJob 以处理 Azure Tables 中的数据,并且当有多个 WebSite 实例(即 WebSite 被横向扩展)时,需要使用一些处理同步。
我可以从基础架构(当前正在运行多少个 WebApp 实例)获取此类信息吗?
我正在创建 Azure WebJob 以处理 Azure Tables 中的数据,并且当有多个 WebSite 实例(即 WebSite 被横向扩展)时,需要使用一些处理同步。
我可以从基础架构(当前正在运行多少个 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