rabbitmq 队列问题,消费进程一直存在,但是过段时间就不会主动消费队列,有谁遇到过。

环境为:docker+rabbitmq+laravel

队列消费的进程一直存在,但是过一段时间就不会去消费。

比如今天还是好好的,明天就不会去消费,需要杀死进程再重新开。

本来以为是自己的搭建的rabbitmq的服务有问题,后面换成阿里云的rabbitmq也存在该问题。

问题:想知道,是否docker的内的环境是否会存在影响rabbitmq的连接,导致队列数据无法接收,过段时间就无法进行消费。
还是自己的代码或者配置存在问题。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 5
Mr_Chung

是否有心跳机制或者睡眠了呢

4年前 评论

先重点检查LogService,从上层开始逐一排查。你提到了心跳检测,那你去管理页面看看timeout的值,它代表的是心跳检测的时间。

4年前 评论
66

遇到过,心跳问题

public function __construct(
        $host,
        $port,
        $user,
        $password,
        $vhost = '/',
        $insist = false,
        $login_method = 'AMQPLAIN',
        $login_response = null,
        $locale = 'en_US',
        $connection_timeout = 3.0,
        $read_write_timeout = 3.0,
        $context = null,
        $keepalive = false,
        $heartbeat = 30,//心跳检测
        $channel_rpc_timeout = 0.0,
        $ssl_protocol = null
    ) 
4年前 评论
Mr_Chung (楼主) 4年前
66 (作者) 4年前
Mr_Chung (楼主) 4年前
66 (作者) 4年前
Mr_Chung (楼主) 4年前
Yancy0220 3年前

没有 reconnect 机制, isConsuming 逻辑也可能有问题,最简单的方式就是,看rabbitmqserver 日志确认下

4年前 评论

我也遇到这个问题了,在consumer端设置心跳就好了

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!