2
我想知道如果卤面服务总线可以处理以下用例:卤面 - 递延信息,只有一个消息处理程序
- 队列消息未来日期
- 如果有一个消息ProcessInvoice像客户Id:1000这样的上下文,我们是否可以只有一个处理程序执行消息。所以如果消息被复制,它不会再被处理。
由于
我想知道如果卤面服务总线可以处理以下用例:卤面 - 递延信息,只有一个消息处理程序
由于
当然 - Rebus的可以bus.Defer
消息一些TimeSpan
到未来 - 例如推迟的消息给一些特定的日期交货,这样的事情可以做:
var delay = utcTimeOfWhenToDeliverTheMessage - DateTime.UtcNow;
bus.Defer(delay, messageToPostpone);
这就要求超时经理已配置。您可以通过配置超时管理器
Configure.With(...)
.(...)
.Timeouts(t => t.(...))
中的Rebus配置法术。
如果你想保证一个给定的消息只处理一次,即使可能传送重复数据,也需要考虑几件事情 - 很难告诉你处理它的最简单方法,因为有时它可能很容易只需执行idempotent,其他时间您需要跟踪处理的消息的ID等。