为什么即使我指定了具有不同连接的队列,Laravel也会使用默认队列连接

为什么即使我指定了具有不同连接的队列,Laravel也会使用默认队列连接,laravel,laravel-5,amazon-sqs,laravel-queue,Laravel,Laravel 5,Amazon Sqs,Laravel Queue,我对laravel队列有问题。在我的项目中,默认连接是sync,我想为一种作业类型添加sqs连接 以这种方式分派作业时: TestAction::dispatch()->onQueue('test'); TestAction::dispatch()->onQueue('test')->onConnection('sqsTestAction'); 立即执行作业(通过同步连接) 如果我以这种方式分派作业: TestAction::dispatch()->onQueue('

我对laravel队列有问题。在我的项目中,默认连接是sync,我想为一种作业类型添加sqs连接

以这种方式分派作业时:

TestAction::dispatch()->onQueue('test');
TestAction::dispatch()->onQueue('test')->onConnection('sqsTestAction');
立即执行作业(通过同步连接)

如果我以这种方式分派作业:

TestAction::dispatch()->onQueue('test');
TestAction::dispatch()->onQueue('test')->onConnection('sqsTestAction');
一切都好

队列“test”在SQSTESTATION连接中,为什么在第一个示例中作业是通过同步连接发送的

My config/queue.php:


    'default' => env('QUEUE_CONNECTION', 'sync'),


    'connections' => [

        'sync' => [
            'driver' => 'sync',
        ],

        'sqsTestAction' => [
            'driver' => 'sqs',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'prefix' => env('AWS_SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
            'queue' => "test",
            'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
        ],

    ],
拉威尔版本5.8

为什么在第一个示例中,作业是通过同步连接发送的

因为您可以看到,它是默认设置的。将
QUEUE\u CONNECTION
.env
文件值更改为
sqstestation
,这将成为默认值。
在config/queue文件的默认键中,第二个参数是当
.env
值不存在时的回退参数

好的,我认为默认连接不支持测试队列,所以这是我的误解。谢谢你的回答#对不起,我能帮忙吗