作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个排队的网络作业使用队列触发器执行任务,如下所示:
public static void ProcessQueueMessage([QueueTrigger("queue")],Data data, TextWriter log)
{
//do stuff
}
在同一解决方案中有一个网站,我需要做的就是简单地将消息从网站 Controller 之一添加到队列中。我尝试过直接引用该函数,但似乎这只是运行该函数而不是对消息进行排队,这是不可取的,因为它以一种扩展性很差的方式创建了一大堆线程。
最佳答案
QueueTrigger 的工作方式是轮询队列(在属性中指定,在您的例子中名为“queue”)。因此,基本上,为了将消息添加到此队列,您只需引用 Azure Storage Client Library
在您的网站项目中,然后在 Controller 中使用类似于以下的代码将消息添加到队列中:
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 - 如何将消息添加到azure webjobs队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31314703/
我是一名优秀的程序员,十分优秀!