我正在创建用于处理 Azure 表中的数据的 Azure WebJob,并且当有多个网站实例(即网站已横向扩展)时,需要使用一些处理同步。
我是否可以从基础结构(当前正在运行的 WebApp 实例数)获取此类信息?
此博客文章包含有关获取 Azure 网站实例数的信息 - http://blog.amitapple.com/post/2014/03/access-specific-instance/
特别是对于连续 Web 作业,有一个 api 调用,它为您提供特定 Web 作业的所有实例的状态,您需要使用此处描述的 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