gpt4 book ai didi

azure - 将 Azure 服务总线队列自动转发与 ScheduledEnqueueTimeUtc 结合使用

转载 作者:行者123 更新时间:2023-12-03 03:08:39 24 4
gpt4 key购买 nike

我在同一命名空间中有 2 个 Azure 服务总线队列。我使用 ScheduledEnqueueTimeUtc 将预定消息放入其中一个队列(“scheduled-queue”)中,并将我想要立即处理的消息放入另一个队列(“now-queue”)中。

我想要做的是设置“scheduled-queue”的“Auto Forward”属性,以便在消息到达其 ScheduledEnqueueTimeUtc 时将消息转发到“now-queue”。队列转发会这样工作吗?或者队列自动转发是否立即发送排队和未排队的消息?

我无法在任何地方找到任何文档或示例来解释转发如何处理队列中当前“不可见”的消息,因为它们尚未达到入队日期时间。

最佳答案

您应该能够通过一个主题和两个订阅来实现这一目标。我今天没有时间亲自进行复制,所以如果这不起作用,请告诉我:

创建一个包含两个订阅的主题。将其中一个称为“现在”,将另一个称为“以后”。使用自定义属性(在属性中)发送消息,您将其称为“ScheduledTime”,并将其设置为希望消息稍后出现在“scheduled-queue”中的所需日期时间(所有这些名称都是虚构的)

创建“now”订阅时,将其设置为“now-queue”的 ForwardTo 并添加一条规则,如果您使用的是 C#,则使用 CreateSubscription(SubscriptionDescription, RuleDescription) 重载,从而将过滤器设置为TrueFilter 并将操作设置为 SqlRuleAction,其中表达式“REMOVE ScheduledTime ”会引发计划超时。

创建“稍后”订阅时,将其设置为“预定队列”的 ForwardTo,并添加带有 TrueFilter 的规则,并将操作设置为执行“SET sys.ScheduledEnqueueTimeUtc=ScheduledTime; REMOVE ScheduledTime”的 SqlRuleAction

该规则将在转发之前将您的值复制到目标队列所需的入队时间。

理论上这应该可行。

关于azure - 将 Azure 服务总线队列自动转发与 ScheduledEnqueueTimeUtc 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41684635/

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