Pub/Sub 中的事务范围 + Rebus 中的消息标签
Transaction Scope in Pub/Sub + Message Label in Rebus
目前我正在使用 WCF 作为服务总线。但我想切换到更强大的服务总线。我选择了 Rebus。
我对 Rebus 有点陌生。我有一些问题:
1) 我的数据保存在数据库中 table。我希望发布者每 n 秒读取一次所有持久化数据并将其发布给订阅者,然后将发送标志设置为数据库中的数据。
有发布时间吗?
读取和发布以及更改(设置标志)数据必须在事务范围内完成。 Rebus 中有定义的解决方案吗?
2) 在Consumer中,我想将发布的数据保存在一些table中。从消息队列中读取消息并保存在数据库中(在我的处理程序中)必须在事务范围内完成。 Rebus 是怎么做到的?
3) 已发布消息的消息标签设置为随机唯一字符串。我想为创建的 MSMQ 消息设置自定义标签。有什么解决办法吗?
1) 当涉及到定期查询数据库表时,你只能靠自己了——Rebus 中没有内置机制可以做到这一点。
我可以推荐你看看 System.Timers.Timer
或类似的东西。
2) 您可以使用 Rebus.TransactionScopes
程序包在 Rebus 处理程序中启用自动事务范围。
3) 开箱即用,无法指定要在 MSMQ 消息上使用的标签。 Rebus 会将其设置为由 this extension method.
指示的消息类型和 ID 组成的字符串
目前我正在使用 WCF 作为服务总线。但我想切换到更强大的服务总线。我选择了 Rebus。 我对 Rebus 有点陌生。我有一些问题:
1) 我的数据保存在数据库中 table。我希望发布者每 n 秒读取一次所有持久化数据并将其发布给订阅者,然后将发送标志设置为数据库中的数据。 有发布时间吗? 读取和发布以及更改(设置标志)数据必须在事务范围内完成。 Rebus 中有定义的解决方案吗?
2) 在Consumer中,我想将发布的数据保存在一些table中。从消息队列中读取消息并保存在数据库中(在我的处理程序中)必须在事务范围内完成。 Rebus 是怎么做到的?
3) 已发布消息的消息标签设置为随机唯一字符串。我想为创建的 MSMQ 消息设置自定义标签。有什么解决办法吗?
1) 当涉及到定期查询数据库表时,你只能靠自己了——Rebus 中没有内置机制可以做到这一点。
我可以推荐你看看 System.Timers.Timer
或类似的东西。
2) 您可以使用 Rebus.TransactionScopes
程序包在 Rebus 处理程序中启用自动事务范围。
3) 开箱即用,无法指定要在 MSMQ 消息上使用的标签。 Rebus 会将其设置为由 this extension method.
指示的消息类型和 ID 组成的字符串