代码之家  ›  专栏  ›  技术社区  ›  senty

队列连接'database'工作,但'redis'抛出'Array to String conversion'

  •  0
  • senty  · 技术社区  · 5 年前

    我只是尝试运行一个事件&侦听器循环,并向其中传递一个模型

    event(new LabelsCreated($model, 'string'));
    

    这与 QUEUE_CONNECTION=database 但是 QUEUE_CONNECTION=redis

    #消息:“数组到字符串转换”

    #代码:0

    #文件:“/home/vagrant/Code/Upworks/myproj/vendor/laravel/framework/src/Illuminate/Queue/RedisQueue.php文件"

    #线路:302

    我的事件类如下所示:

    class LabelsCreated
    {
        use Dispatchable, SerializesModels;
    
        public $model;
    
        public $string;
    
        public function __construct($model, $string)
        {
            $this->model = $model;
            $this->string = $string;
    
            // comes here
        }
    }
    

    但它根本不会让我的听众排队。


    我的配置/队列.php,redis数组如下:

    'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
            'queue' => ['default', 'export'],
            'retry_after' => 90,
            'block_for' => null,
     ],
    

    它可能是指键“queue”值吗?

    0 回复  |  直到 5 年前
        1
  •  0
  •   senty    5 年前

    'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
            'queue' => ['default', 'export'], // THIS LINE
            'retry_after' => 90,
            'block_for' => null,
     ],
    

    我试着保留默认值

    'queue' => 'default'
    

    它在同一个连接上运行多个队列。

    https://laracasts.com/discuss/channels/laravel/multiple-queues-for-redis-connection?page=0#reply=461404

    推荐文章