【问题标题】:Rebus: Check if a message is already on the bus in a deferred stateRebus:检查消息是否已经在总线上处于延迟状态
【发布时间】:2018-04-03 08:51:28
【问题描述】:

我试图弄清楚 rebus 是否支持查询队列。 我想查看队列,以了解消息是否已在队列中处于延迟状态。 原因是我们正在执行一项相当昂贵的操作,我们希望每天执行一次,并且我们可能有多个服务实例,因此我们希望确保总线上只有这种类型的 on 消息。

rebus 是否可以做到这一点,或者我应该为此使用 azure service bus api 吗?

【问题讨论】:

    标签: rebus


    【解决方案1】:

    Rebus 是不可能的 :(

    对我来说,这听起来更像是您想使用某种调度程序,例如比如Quartz .NET,或者你自己编码的东西。

    对我来说,查询 Azure 服务总线队列听起来不是一个好主意,因为它有点倒退,因为听起来你只是想每天执行一些任务。

    这会突然将您与 ASB 传输及其怪癖联系在一起,同时也将您与 Rebus 的延迟消息是使用 ASB 的延迟可见性功能实现的事实联系在一起,从而使您的代码的可移植性降低。

    最后,我担心您会遇到并发问题,因为避免围绕谁将延迟消息放入队列的竞争条件并非易事。

    如果我是你,我会自己编写一个简单的调度程序,然后让它根据需要定期发送 Rebus 消息。

    【讨论】:

      猜你喜欢
      • 2015-01-12
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      相关资源
      最近更新 更多