2015-03-25 37 views
1

我有一个WebSite的多个实例,都运行相同的WebJob,连接到相同的AzureWebJobsStorage并配置为触发传入的Blob。使用Azure WebJobs并行Blob处理

不幸的是,结果与我的意图不同 - 当一个blob保存到存储中时,只有一个WebJobs实例会将其选中。我宁愿让他们都处理这个blob。我的猜测是,它的作用就像这样构建blob收据名称 - 它包含WebJob funcion名称,它对于我所有的WebJob都是一样的。

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

+0

你可以用'BlobTriggerAttribute'来添加你的方法声明吗? – Guillaume 2015-03-25 09:17:32

回答

2

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

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

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