如何将消息添加到 azure webjobs 队列

Posted

技术标签:

【中文标题】如何将消息添加到 azure webjobs 队列【英文标题】:how to add message to azure webjobs queue 【发布时间】:2015-09-27 15:56:33 【问题描述】:

我有一个排队的 webjob 使用 queuetrigger 执行任务:

    public static void ProcessQueueMessage([QueueTrigger("queue")],Data data, TextWriter log)

    //do stuff

在同一个解决方案中有一个网站,我需要做的是简单地将消息从其中一个网站控制器添加到队列中。我试过直接引用函数,但似乎这只是运行函数而不是排队消息,这是不可取的,因为它以一种扩展性很差的方式创建了一大堆线程。

【问题讨论】:

如果我理解正确,您想将消息添加到将通过此网络作业处理的"queue" 存储队列。我说的对吗? @Guarav Mantri 是的,没错 【参考方案1】:

QueueTrigger 的工作方式是轮询队列(在您的情况下名为“队列”的属性中指定)。因此,基本上要将消息添加到此队列中,您只需在您的网站项目中引用 Azure Storage Client Library,然后在您的控制器中使用类似于下面的代码将消息添加到队列中:

        var account = new CloudStorageAccount(new StorageCredentials(accountName, accountKey), true);
        var queueClient = account.CreateCloudQueueClient();
        var queue = queueClient.GetQueueReference("queue");
        var msg = new CloudQueueMessage("message-contents");
        queue.AddMessage(msg);

此链接可能对您也有帮助:https://azure.microsoft.com/en-in/documentation/articles/websites-dotnet-webjobs-sdk-storage-queues-how-to/

【讨论】:

以上是关于如何将消息添加到 azure webjobs 队列的主要内容,如果未能解决你的问题,请参考以下文章

Azure WebJobs 在监控多个队列时如何对消息进行优先级排序?

如何防止 Azure webjob 同时多次处理相同的消息

在 Azure Webjobs SDK 中设置 nextVisibleTime

Laravel 队列和 Azure WebJob

在 Azure 存储中使用队列

WebJobs 未重试失败的队列消息