在 web api 中接收服务总线消息队列/主题

Posted

技术标签:

【中文标题】在 web api 中接收服务总线消息队列/主题【英文标题】:Receive service bus message queue/topics in web api 【发布时间】:2022-01-21 03:30:34 【问题描述】:

我正在开发基于 azure 的微服务应用程序。我的要求是我有一个服务总线,我需要在 web api 中使用该服务总线消息。目前我通过azure函数实现,但我公司要求使用api。有可能吗?如果可以的话请教我怎么做

【问题讨论】:

是的。使用IHostedServiceBackgroundService 你能给我提供任何教程吗?如果我一次收到更多消息,这将如何处理? 查看如何连接到ServiceBus,然后将其放入BackgroundServiceExecuteAsync 方法中。然后从ExecuteAsync 方法中轮询,直到设置CancellationToken 谢谢,但我们再次使用后台服务而不是函数。那么有没有其他方法可以直接从 api 控制器调用消息? 能否请您参考这个docs.microsoft.com/en-us/rest/api/servicebus/…,希望对您有帮助 【参考方案1】:

您可以创建后台服务来监听来自服务总线队列的消息。 以下是需要注意的几个关键点:

在计时器上运行的后台任务。 激活范围服务的托管服务。作用域服务可以使用依赖注入 (DI)。 按顺序运行的排队后台任务。

应用设置:

1.  
2.  "AppSettings": 
3.  "QueueConnectionString": "<replace your RootManageSharedAccessKey here>",
4.  "QueueName": "order-queue"
5.  
6.  

您可以参考c-sharpcornerblog了解分步过程。

【讨论】:

以上是关于在 web api 中接收服务总线消息队列/主题的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 Azure 服务总线主题上的死信消息

从服务总线队列接收消息时出现问题

漏洞复现 - ActiveMQ反序列化漏洞(CVE-2015-5254)

无法从 Azure 服务总线中的并发会话按顺序接收消息

Azure 服务总线 - 发布到队列和事务范围内的主题

使用azure服务总线,如何将单个消息发布到多个队列?