我试图弄清楚如何侦听队列上的事件(尤其是入队事件)。
假设我有一个控制台应用程序和一个服务总线队列/主题,如何连接到队列并等待新消息?
我试图在没有While(true)
和不断的轮询,我试图以一种相当监听的方式来做更多的事情,比如保持连接到队列的套接字。
我不想使用轮询的原因是我知道它会用请求淹没服务器,我需要一个可以在很大负载下工作的解决方案。
谢谢。
为了问题的简单性,我给出了非常基本的例子,但我的实际情况有点复杂:
我有 Web-API,它使用服务总线队列将需要处理的消息发送到辅助角色。
我需要以某种方式知道工作人员何时处理了消息。
我希望 Worker 向队列发送一条消息,提醒 Web API 已处理该消息,但现在我需要让 Web-API “坐下”并等待 Worker 的响应,这引出了我的问题:
我怎样才能不断地监听队列而不进行轮询(因为有很多实例会池化,并且它会创建很多可能最好避免的请求。
使用 Azure WebJobs SDK - 它具有触发器,可以使用简单的代码监视队列和 blob,例如:
public static void Main()
{
JobHost host = new JobHost();
host.RunAndBlock();
}
public static void ProcessQueueMessage([QueueTrigger("webjobsqueue")] string inputText,
[Blob("containername/blobname")]TextWriter writer)
{
writer.WriteLine(inputText);
}
有一个很棒的教程什么是 Azure WebJobs SDK https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)