Azure服务总线未接收消息

时间:2018-05-31 11:59:59

标签: javascript node.js azure azureservicebus azure-servicebus-queues

我正在使用Azure服务总线在K8s设置中跨容器发送消息。接收消息的服务的实现是在Node.js中完成的。在doc页面中,这是我用来接收消息的代码。

serviceBusService.receiveQueueMessage('feedback', function(error, receivedMessage) {

  if (!error) {

   // Message received and deleted

   console.log(receivedMessage);

  //..

   }

});

第一次一切正常,但第二次没有收到消息。当代码段保存在setInterval块内时,它可以正常工作。这似乎不是预期的做法。

任何想法可能出错?

2 个答案:

答案 0 :(得分:0)

我没有为ServiceBus客户端使用js库,但是具有它的.NET库似乎具有相似的方法。因此,如果js versjon的工作方式相同,那么它只会收到一条消息,您必须继续自己。

.Net库中通常有两种方法:

  1. 您可以使用自己认为必要的内容编写自己的while循环

  2. 您使用的似乎是js库中缺少的RegisterMessageHandler

选项号2通常会执行相同的操作,并在泵内启动while循环,这样您就不必自己实现它。

您可以here来了解while循环的实现方式,并在js中进行类似的操作。

答案 1 :(得分:0)

就像Mikhail Shilkov先前在评论中提到的那样,我怀疑它只会收到一条消息,我也建议您使用AMQP库。

我知道这是一个较晚的答复,但是以防万一有人遇到问题,请参阅下面的链接。

@azure/service-bus的7.0.0版本(基于AMQP)最近已发布。