【问题标题】:Transaction Scope in Pub/Sub + Message Label in RebusPub/Sub 中的事务范围 + Rebus 中的消息标签
【发布时间】:2016-10-26 03:02:20
【问题描述】:

目前我使用 WCF 作为服务总线。但我想切换到更强大的服务总线。我选择了Rebus。 我对 Rebus 有点陌生。我有一些问题:

1) 我的数据保存在数据库表中。我希望发布者每 n 秒读取一次所有持久数据并将其发布给订阅者,然后将已发送标志设置为数据库中的数据。 有时间发布吗? 读取、发布和更改(设置标志)数据必须在事务范围内完成。 Rebus 中是否有明确的解决方案?

2) 在消费者中,我想将发布的数据保存在某个表中。从消息队列中读取消息并保存在数据库中(在我的处理程序中)必须在事务范围内完成。 Rebus 如何做到这一点?

3) 已发布消息的消息标签设置为随机唯一字符串。我想为创建的 MSMQ 消息设置自定义标签。有什么解决办法吗?

【问题讨论】:

    标签: rebus


    【解决方案1】:

    1) 定期查询数据库表时,您只能靠自己——Rebus 中没有内置机制可以做到这一点。

    我可以推荐你看看System.Timers.Timer 或类似的东西。

    2) 您可以使用 Rebus.TransactionScopes 包在您的 Rebus 处理程序中启用自动事务范围。

    3) 开箱即用,无法指定要在 MSMQ 消息上使用的标签。它将由 Rebus 设置为由消息类型和 ID 组成的字符串,如 this extension method 所示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 2011-11-20
      • 1970-01-01
      相关资源
      最近更新 更多