如何为WebJob侦听器指定特定队列

时间:2017-12-24 10:28:41

标签: azure azure-webjobs azureservicebus azure-servicebus-queues

这是我觉得我过去已经解决的问题之一,但我似乎无法解决问题。我有一个WebJob,我只想在队列中监听消息:

public static void ProcessQueueMessage(
        [QueueTrigger("myqueue")] string message,
        TextWriter log)

在本地运行它,它会运行,但是当我向myqueue添加消息时,没有任何反应。我很确定原因是队列触发器不知道在哪里查找我的队列。我觉得应该有QueueTrigger的连接字符串属性,但是没有。

我尝试使用服务总线上RootManageSharedAccessKey的连接字符串作为AzureWebJobsStorage值(也尝试过的信息中心),但它不喜欢连接字符串。如何将Web作业指向正确的服务总线?

1 个答案:

答案 0 :(得分:3)

QueueTrigger侦听存储队列,而不是服务总线队列。它默认使用AzureWebJobsStorage连接字符串。

如果您需要处理Service Bus消息,请使用ServiceBusTrigger属性:

public static void ProcessQueueMessage(
    [ServiceBusTrigger("myqueue")] string message,
    TextWriter log)

默认连接字符串名称为AzureWebJobsServiceBus。否则,您可以通过Connection属性为连接字符串设置替代的app设置名称。

有关详细说明,请参阅docs