与服务总线主题订阅中的当前日期比较 rule/filter

comparing with current date in Service bus topic subscription rule/filter

在我当前的项目中,我想在主题的订阅上使用 filters/rules 自定义重试策略。

我从 Azure 函数中的主题收到一条消息,并尝试将其发送到远程服务。如果服务抛出超时异常,我想在消息中添加一个名为 PostponeUntil 的自定义 属性 和特定的日期时间(例如,在一个小时内),再次将其添加到主题中,然后使用规则在订阅上过滤掉此消息,直到需要重试。 是否可以像这样使用 SqlFilter:

 var filter = new Microsoft.Azure.ServiceBus.SqlFilter("GETDATE() = PostponedUntilDateTime");

如果没有,我有什么方案可以替代?

要将消息发送到具有时间延迟的服务总线队列和主题,您应该使用计划的消息传递。

您可以将消息安排到特定时间的主题,这样它只会在指定的时间排队到主题中。

ScheduleMessageAsync 是实现它的方法。

查看 here 以了解有关计划消息的更多详细信息。