wo642436249
V2EX  ›  PHP

swoole 结合 rabbitmq 的默认交换机遇到了一个问题

  •  
  •   wo642436249 · Jul 23, 2019 · 4373 views
    This topic created in 2506 days ago, the information mentioned may be changed or developed.

    生产和消费 rabbitmq 的代码,基本完全是从 rabbitmq 教程官方中第二个教程中复制过来的,但是发现一个问题,当我做了持久化后,消费者没有确认消息后,消息虽然正常的被放回到 rabbitmq 中了,但是这条消息已经无法再次读取了,除非重启 swoole 进程。目前的解决方案是关闭该 mq 的通道,然后重新建立通道去监听 mq,但是这样做会导致内存占用不断升高。

    2 replies    2019-08-20 13:42:34 +08:00
    suom
        1
    suom  
       Jul 24, 2019
    除非 channel 被关闭之类的,没有 ack 的任务是会一直被挂起的。
    消息处理完 ack,发生异常时视情况 ack 或者 unack。
    davidyanxw
        2
    davidyanxw  
       Aug 20, 2019
    unack 或者 reject,指定 requeue 参数。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5569 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 08:23 · PVG 16:23 · LAX 01:23 · JFK 04:23
    ♥ Do have faith in what you're doing.