0

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

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

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

如果没有,我所拥有的场景有哪些替代方案?

4

1 回答 1

1

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

您可以将消息安排到具有特定时间的主题,以便仅在指定时间将消息排队到主题中。

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

在此处查看有关预定消息的更多详细信息。

于 2018-10-17T14:10:14.607 回答