Laravel 5 在laravel队列中使用多个连接

Laravel 5 在laravel队列中使用多个连接,laravel-5,configuration,que,Laravel 5,Configuration,Que,使用Laravel5.5,我们需要同时使用Redis和SQS队列。Redis用于我们的内部消息传递,SQS用于来自第三方的消息传递 config/queue.php具有各种连接信息。第一个键是默认连接。该默认值是queue:workartisan命令使用的值 'default' => 'redis', 'connections' => [ 'sqs' => [ 'driver' => 'sqs', 'key

使用Laravel5.5,我们需要同时使用Redis和SQS队列。Redis用于我们的内部消息传递,SQS用于来自第三方的消息传递

config/queue.php
具有各种连接信息。第一个键是默认连接。该默认值是
queue:work
artisan命令使用的值

'default' => 'redis',

'connections' => [
    'sqs' => [            
        'driver' => 'sqs',
        'key'    => env('ACCESS_KEY_ID', ''),
        'secret' => env('SECRET_ACCESS_KEY', ''),
        'prefix' => 'https://sqs.us-west-1.amazonaws.com/account-id/',
        'queue'  => 'my-sqs-que'),
        'region' => 'us-west-1',
    ],


    'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => env('REDIS_QUE' , 'default'),
        'retry_after' => 90,
    ],
问题是我们如何为
队列:工作
使用不同的队列连接

如果提供了
--queue=my sqs que
,并将默认连接设置为redis,则laravel会在redis下查找,显然找不到
my sqs que


将默认值设置为sqs将禁用处理我们的内部消息

您可以在运行
队列:工作时指定连接,请参阅:

您还可以指定工作人员应使用的队列连接。传递给work命令的连接名称应与config/queue.php配置文件中定义的连接之一相对应:

您还需要为每个队列设置相应的连接

但是,任何给定的队列连接都可能有多个“队列”,这些“队列”可能被视为不同的队列作业堆栈或堆


运行多个
queue:work
进程。运行多个进程仍然不能解决问题。[至少在单个环境中]。每个
队列:工作
进程仍然使用
默认
连接,因此我们仍然与sqs或redis绑定。
php artisan queue:work redis