目前我使用WCF作为服务总线。但我想切换到更强大的服务总线。我选择了Rebus。 我对Rebus不知何故。我有一些问题:
1)我的数据保存在数据库表中。我希望发布者每n秒读取所有持久化数据并将其发布给订阅者,然后在DB中为数据设置发送标志。 是否有一些发布的时机? 读取和发布以及更改(设置标志)数据必须在事务范围内完成。 Rebus中是否有任何已定义的解决方案?
2)在Consumer中,我想在一些表中保存已发布的数据。从消息队列中读取消息并保存在DB(在我的处理程序中)必须在事务范围内完成。 Rebus如何做到这一点?
3)已发布消息的消息标签设置为随机唯一字符串。我想为创建的MSMQ消息设置自定义标签。有什么解决方案吗?
答案 0 :(得分:0)
1)在定期查询数据库表时你是独立的 - 在Rebus中没有内置机制来执行此操作。
我建议您查看System.Timers.Timer
或类似内容。
2)您可以使用Rebus.TransactionScopes
包在Rebus处理程序中启用自动事务范围。
3)开箱即用,无法指定要在MSMQ消息上使用的标签。它将由Rebus设置为由this extension method指示的消息类型和ID组成的字符串。