使用Azure WebJobs进行并行Blob处理

时间:2015-03-25 08:47:19

标签: azure azure-storage-blobs azure-webjobs

我有一个WebSite的多个实例,它们都运行相同的WebJob,连接到同一个AzureWebJobsStorage并配置为触发传入的blob。

不幸的是,结果与我的意图不同 - 当blob保存到存储中时,只有一个WebJobs实例选择它。我宁愿所有人都处理这个blob。我的猜测是它的工作原理就像blob收据名称的构造方式一样 - 它包含了WebJob函数名称,这对我所有的WebJobs来说都是一样的。

在这种情况下,有没有办法让所有WebJob实例处理blob?

1 个答案:

答案 0 :(得分:2)

我自己刚刚找到了这个问题的答案。事实证明,可以配置 HostId ,它包含在blob的收据名称中。对我来说,以下代码完成了这项工作:

var applicationName = Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME");

var host = new JobHost(new JobHostConfiguration
                                       {
                                           HostId = applicationName ?? "localhost"
                                       });