我正在使用 ServiceBus 来代理消息,这将要求我们为每条消息生成 ContainerApp 作业执行。但是,我无法找到有关
scalingStrategy
的正确配置。
其他一切都工作正常,我正在使用队列上的消息上下旋转作业,但由于我们使用总线和使消息出队的方式,我需要更改扩展策略。
具体来说,我发现应该有
scalingStrategy
的 accurate
,KEDA 文档说如果(像我们一样)您的队列不包含锁定消息,则可以使用:
“准确 如果缩放器返回的队列长度(队列中的项目数)不包括锁定消息的数量,则建议使用此策略。Azure 存储队列就是一个示例。如果您在删除消息后删除消息,则可以使用此策略。应用程序消耗它。”
由于我们正在运行长时间执行,因此我们在 ServiceBus 上使用接收并删除模式而不是 Peek-Lock,因此我们属于此类,一旦我们使用消息,我们就会删除消息。
但我在与 Azure ServiceBus 缩放器相关的文档中以及Azure 文档中都没有看到任何设置scalingStrategy的选项。
有人知道如何设置吗?
我希望在某个地方缺少一个配置选项,可以让我更改缩放行为。不幸的是,我无法使用 Peek-Lock 的默认出队模式,否则我会切换到该模式,并且我认为默认的扩展策略可以正常工作。
正如您所提到的,该平台正在使用“默认”扩展策略,该策略处理“锁定”消息。目前,客户无法选择不同的扩展策略。
确保作业可靠地处理消息的解决方法是使用可见性超时功能来锁定消息。根据您的作业持续时间调整超时。例如,如果您的工作通常需要 5 到 30 分钟,请考虑将可见性超时设置为 1 小时。一旦您的代码处理完消息,就可以安全地将其删除。
您可以使用 QueueClient.UpdateMessage 方法更改可见性超时。
注意:产品团队已确认他们计划将scalingStrategy作为选项公开给客户,但目前还没有预计时间。