与服务总线主题订阅规则/过滤器中的当前日期进行比较

时间:2018-10-17 13:40:29

标签: azureservicebus azure-servicebus-topics azure-servicebus-subscriptions

在我当前的项目中,我有一个想法,即对主题的订阅使用过滤器/规则以用于自定义重试策略。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

您可以安排在特定时间发送给主题的消息,以便仅在指定时间将其排队入主题。

ScheduleMessageAsync是您应该用来实现它的方法。

查看here,了解有关预定消息的更多详细信息。