Azure Webjob使用QueueTrigger不轮询新存储帐户中的队列

时间:2017-11-10 18:07:59

标签: azure-webjobs

我有一个Web应用程序,在Azure中使用WebJob(使用QueueTrigger监视队列)已经运行了一年多。我试图重新组织我的一些Azure资源,并希望WebJob监视不同的队列。

我创建了一个新的(非经典)存储帐户并更改了我的代码,以便将新邮件插入到新的队列中。我可以看到新消息显示在新队列中,但WebJob从未被触发。 (旧的队列在一个经典的存储帐户中。我不认为这很重要,但我已经想到了。我看到一些较旧的帖子让我觉得这曾经是一个问题,但是一些较新的帖子让我觉得没问题。)

我的代码非常简单(几乎直接来自教程)。它想要app.config中的Queue连接字符串用于AzureWebJobsDashboard和AzureWebJobsStorage,我已经完成了。

var host = new JobHost();
host.RunAndBlock();

要验证新代码是否已成功部署,我已删除Azure门户中的旧WebJob,并验证App_Data \ Jobs ...文件夹中的文件日期是最新的,并且我已查看该值" AzureWebJobsStorage"在已部署的配置文件中,它是新的Queue连接字符串。

我终于想到要在旧队列中手动插入一条消息(我的代码都没有指向任何更多)。果然 - 当我这样做时,WebJob会被触发并运行。

我认为更改App.Config中的连接字符串值应该是拥有它所需要的所有内容" watch"一个新的队列,但似乎还不够。有谁知道还需要改变什么?

1 个答案:

答案 0 :(得分:1)

所以我想出来了。您不仅需要WebJob项目的App.Config中的连接字符串条目(指向队列),还需要Web应用程序。我在Azure门户网站的Web应用程序的“应用程序设置”部分中配置了AzureWebJobsDashboard和AzureWebJobsStorage。

那些仍然指向旧队列,显然那些是重要的队列。一旦我更新了这些设置以指向新队列,它就可以正常工作。