gpt4 book ai didi

azure - 扩展长时间运行的消息处理 Azure 服务总线

转载 作者:行者123 更新时间:2023-12-01 02:12:47 24 4
gpt4 key购买 nike

扩展使用 QueueClient 消息泵处理许多长时间运行的 Azure 服务总线消息的辅助角色的最佳方法是什么。

如果使用 QueueClient.OnMessageOptions.MaxConcurrentCalls = 6 和 QueueClient.OnMessage这是否意味着我一次最多只能处理 6 条消息?

在 OnMessage 回调中进行长时间运行的处理以生成新任务来完成其处理,这是否是一种不好的形式?

我应该使用 QueueClient.OnMessageAsync 吗?

感谢您的帮助。

最佳答案

“长时间运行”是指 IO 密集型还是 CPU 密集型?

假设 IO 绑定(bind),那么我不会在 OnMessage 回调中生成新任务。这会产生线程管理开销,从而会大规模减慢处理速度。

如果您使用 IO 绑定(bind)操作,请考虑使用 OnMessageAsync,并确保您等待这些操作的异步实现。这可以更有效地使用现有线程。

如果您的操作受 CPU 限制,那么任务创建可能会为您做更多的事情。 Stephen Cleary 在一系列精彩的帖子中讨论了其机制:

http://blog.stephencleary.com/2013/10/taskrun-etiquette-and-proper-usage.html

MaxConcurrentCalls 属性控制对服务总线的并发请求数。如果您受 IO 限制并受到可用带宽的限制,则增加此数字的影响有限。我建议使用 Azure 客户端性能计数器进行一些性能测试,以获得适合您的环境的最佳值。

关于azure - 扩展长时间运行的消息处理 Azure 服务总线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27855604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com