我可以运行监听同一队列的azure函数的多个实例

问题描述 投票:0回答:1

背景:我最近遇到一个问题,我的函数无法处理负载并且队列消息正在建立。从长远来看,我正在寻找代码来找到瓶颈的位置,但在短期内我需要解决这个问题。 问题:我可以添加同一个azure函数的多个实例(即使它是重命名myjobrunner1,myjobrunner2)等,它们都会监听同一个队列吗?这对我的情况有帮助吗?

一些警告: 高级计划看起来不错,但我目前无法在生产中测试预览。 添加专用AppService是一种选择,但它是一个长期修复。我现在遇到了麻烦。 代码修复正在进行中以更好地处理负载并提高性能,但外部服务正在阻止它们的事实是一个因素。

azure azure-functions
1个回答
0
投票

我是怎么解决这个问题的。 我添加了一个额外的队列和逻辑来分割两个队列之间的消息。然后我创建了一个指向第二个队列的函数(1和2)的新实例。我原本以为队列的工作方式是只允许删除一条消息副本。然后没有其他服务可以读取该消息。我的测试似乎并非如此。

使用最大批次计数运行两个函数解决了问题。这是一种我可以继续的模式,直到我们能够有效地查看更多代码增强功能。但我们的瓶颈似乎是httpclient实例(我不能将它们作为静态运行,并且需要进行重大更改)和一些可以优化的db调用。

如果其他人有其他建议请添加。当高级计划发布时,我会尝试,但在那之前,我将不得不坚持这个解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.