2015-03-25 34 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" 
             });