![](/img/trans.png)
[英]How to listen to a queue using azure service-bus with Node.js?
[英]Listen to Queue (Event Driven no polling) Service-Bus / Storage Queue
我試圖找出如何監聽隊列中的事件(尤其是入隊事件)。
假設我有控制台應用程序和服務總線隊列/主題,如何連接到隊列並等待新消息?
我試圖在沒有While(true)
和常量輪詢的情況下實現這一點,我試圖以一種非常傾聽的方式做更多事情,就像一個保持連接到隊列的套接字。
我不想使用輪詢的原因是我明白它會使服務器充滿請求,我需要一個可以在很大負載下運行的解決方案。
謝謝。
我給出了問題簡單性的基本示例,但我的實際情況有點復雜:
我的Web-API使用Service Bus Queue將需要處理的消息發送到Worker角色。
我需要以某種方式知道工作人員何時處理了消息。 我希望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有一個很棒的教程。
我最終使用了QueueClient.ReceiveAsync
為了等待帶有Timespan參數的消息。
BrokeredMessage msg = subClient.ReceiveAsync(TimeSpan.FromMinutes(3));
這是一篇很好的文章,解釋了Azure Service Bus 鏈接和Service Bus最佳實踐的大部分內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.