我有一个流,其中一些处理程序发布事件。每100个事件,我想做一些操作。有什么聪明的方法可以做到这一点吗?我知道我可以编写在单线程主机上运行的处理程序,这样它一次只消耗一条消息,并防止处理超过100条消息。但我希望避免仅为这一种情况创建单独的主机。你知道怎么对付雷布斯吗?
有什么聪明的方法来实现这一点吗?
不,不完全是。或者,更准确地说:我认为有很多方法可以做到这一点,不同的解决方案会有不同的性质。
。你可以使用静态的long
和Interlocked.Increment(...)
来统计消息,并将返回值与% 100
进行比较,以确定是否该触发某事。
或者你可以将行插入到数据库中,然后有一个单独的后台计时器查询数据库并做任何需要做的事情,当表中有100行时-然后它可以删除行或将它们标记为已处理。
所以…在Rebus中没有内置的方法,但可能有很多创造性的方法。