代码之家  ›  专栏  ›  技术社区  ›  Evil August

如何使用EasyNetQ从RabbitMQ断开连接,然后重新连接?

  •  1
  • Evil August  · 技术社区  · 9 年前

    我需要断开与RabbitMQ的连接,并使用EasyNetQ重新连接。我这样做是通过按照文档中的描述处理IBU。

    https://github.com/EasyNetQ/EasyNetQ/wiki/connecting-to-rabbitmq

    “要关闭连接,只需处理总线……这将关闭连接、通道、消费者和EasyNetQ使用的所有其他资源。”

    然而,当我调用创建新总线时,它仍然显示为断开连接并已处理。

    bus = RabbitHutch.CreateBus(connString);
    bus.Dispose();
    resolver.EasyNetQKernel.Release(bus);
    bus = RabbitHutch.CreateBus(connString);
    bus.Receive<Command>("CommandQueue"), Process);
    

    此时,当我尝试重置我的消费者时,我得到一个EasyNetQException,消息是“总线已被处理”

    1 回复  |  直到 9 年前
        1
  •  0
  •   Wiebe Tijsma    9 年前

    我还没有使用过Ninject,但是您可以尝试处理并重新创建整个Ninject容器而不是总线实例吗?我认为您的容器可能保留了已处理的旧引用。