我正在使用RabbitMQ为项目评估MassTransit,我们希望能够将消息处理延迟到某个时间。
目标如下:
事情是可以通知很多事情,所以我们不想立即发送它们,而是稍后进行总结。可以用MassTransit和RabbitMQ完成吗?
答案 0 :(得分:2)
我意识到这是一篇旧帖子,但是任何寻找这个问题解决方案的人都应该查看https://github.com/MassTransit/MassTransit-Quartz。
你基本上发布了一个延迟消息,它应该重新发布到总线上,Quartz服务(在项目中提供)负责将它持久保存到临时存储中,然后在时间发布时将其发布出去来了。
答案 1 :(得分:0)
我认为您希望将其分为两个阶段,因此邮件在到达时会被处理,但在需要之前不会被处理。
MassTransit进程收到消息,并将通知保留在某种数据存储中。
您还有一个总结过程,偶尔会运行,查看数据存储以查看未完成的内容,如果距离上次摘要超过一个小时,则会将摘要通知发送给用户。
编辑:可能会破解RabbitMQ来执行此操作,请参阅http://www.javacodegeeks.com/2012/04/rabbitmq-scheduled-message-delivery.html