处理程序接收到的每条消息都包含聚合根的整个状态。然后系统能够根据这些数据执行所需的操作。在我的场景中,根据消息中的数据授予访问权限,例如对房间 A 和 B 的访问权限。一条消息包含整组已授予的访问权限。这些消息可能会乱序到达,因为像 MSMQ 这样的消息传递系统不保证有序传递。
消息 #1 授予对房间 A 和 B 的访问权限,但消息 #2 仅授予对房间 A 的访问权限的场景。如果它们无序到达,则授予房间 A 的访问权限,然后再授予房间 A 的访问权限& B. 这不是预期的结果。只应允许进入房间 A。每条消息都包含一个时间戳,该时间戳在发布时设置。我想使用此时间戳来删除乱序到达的旧消息,例如,如果消息 #2 在消息 #1 之前到达,则应该丢弃消息 1#。
我可以在每个处理程序方法中实现这个过滤器,但这会很乏味,所以我希望 Rebus 有一些类似EAI 消息过滤器的东西?
我愿意接受其他选择/实施吗?