多队列。如何指定用哪一个队列

无敌V
'consumer'  => [
    'handler'     => Webman\RedisQueue\Process\Consumer::class,
    'count'       => 18, // 可以设置多进程同时消费
    'constructor' => [
        // 消费者类目录
        'consumer_dir' => app_path() . '/queue/redis'
    ]
],
'consumer_slow'  => [
    'handler'     => Webman\RedisQueue\Process\Consumer::class,
    'count'       => 1,
    'constructor' => [
        // 消费者类目录
        'consumer_dir' => app_path() . '/queue/redis/slow'
    ]
],

现在配了这两个队列
如何指定 业务走 慢队列
这里写问题具体描述

905 2 0
2个回答

walkor 打赏

按照文档说明,消费者放到 queue/redis/slow 目录下

  • 无敌V 2024-03-11

    所以 其实 consumer_slow 这个key没什么实际用
    只要是slow目录下 就是另一组队列
    目 录不可以有N个队列

  • walkor 2024-03-11

    key除了显示进程时有用,其它没什么用。
    一个目录可以有多个队列

  • 小菜丶 2024-06-06

    多个队列的时候 添加延时 只有目录下第一个监听的队列好使,其他的都在redis的延时队列里是什么情况

  • 寒尘卉羽 2024-07-19

    感谢老大解惑

无敌V

那么 关于 队列 restart 之后 新的代码不生效 怎么处理哦。
每次改了业务后都要 更换队列的名称 才有用

  • walkor 2024-03-12

    没遇到过。关闭opcache试下

  • 无敌V 2024-03-12

    我没开opcache!!

  • 无敌V 2024-03-12

    nginx 反向代理的 cache也没开。
    队列是否和redis有关》
    当我在队列中 更新代码 。
    php start.php stop
    php start.php start -d
    运行的还是原来的逻辑!!

  • walkor 2024-03-12

    没遇到过哈,可能你哪里没弄好,比如有其它地方在生产或消费队列,让你认为代码没更新。

  • 无敌V 2024-03-12

    我直接在队列里面 echo "a" 改改为 "echo b"
    restart 之后
    日志里面还是 输出 aaaaaaaaaaaaaaaaa

  • walkor 2024-03-12

    你在哪里看到的日志

  • 无敌V 2024-03-12

    stdout.log
    我直接在队列里面 echo "a"的

×
🔝