V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wo642436249
V2EX  ›  PHP

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

  •  
  •   wo642436249 · 2019-07-23 15:23:11 +08:00 · 3374 次点击
    这是一个创建于 1710 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    2 条回复    2019-08-20 13:42:34 +08:00
    suom
        1
    suom  
       2019-07-24 01:47:36 +08:00
    除非 channel 被关闭之类的,没有 ack 的任务是会一直被挂起的。
    消息处理完 ack,发生异常时视情况 ack 或者 unack。
    davidyanxw
        2
    davidyanxw  
       2019-08-20 13:42:34 +08:00
    unack 或者 reject,指定 requeue 参数。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1184 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:22 · PVG 02:22 · LAX 11:22 · JFK 14:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.