【webman】redis-queue,延时队列不消费 已解决

gddd

版本都是最新的
换了本地和测试服务的redis都不行
使用延时队列,到时间后会被放到{redis-queue}-waiting前缀的键里面,越积越多,就是不消费,也没有报错

https://www.workerman.net/q/10597 类似的情况

431 1 1
1个回答

xiuwang

队列名写错了?

  • dragon2023 2026-01-20

    已经找到根本原因,client类的tryToPullDelayQueue方法有问题,static变量$retry_timer不能设置为0,应该根据不同的数据库设置,将static $retry_timer = 0;改为static $retry_timer = [];$retry_timer[$this->_options['db']] = 0;将“$retry_timer = Timer::add(”改为“$retry_timer[$this->_options['db']] = Timer::add(”

🔝