我有一个WebSite的多个实例,它们都运行相同的WebJob,连接到同一个AzureWebJobsStorage并配置为触发传入的blob。
不幸的是,结果与我的意图不同 - 当blob保存到存储中时,只有一个WebJobs实例选择它。我宁愿所有人都处理这个blob。我的猜测是它的工作原理就像blob收据名称的构造方式一样 - 它包含了WebJob函数名称,这对我所有的WebJobs来说都是一样的。
在这种情况下,有没有办法让所有WebJob实例处理blob?
答案 0 :(得分:2)
我自己刚刚找到了这个问题的答案。事实证明,可以配置 HostId ,它包含在blob的收据名称中。对我来说,以下代码完成了这项工作:
var applicationName = Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME");
var host = new JobHost(new JobHostConfiguration
{
HostId = applicationName ?? "localhost"
});