2

我有一个排队的 webjob 使用 queuetrigger 执行任务,如下所示:

    public static void ProcessQueueMessage([QueueTrigger("queue")],Data data, TextWriter log)
{
    //do stuff
}

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

4

1 回答 1

6

工作方式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/

于 2015-07-09T13:09:54.233 回答