问题 Laravel和多个SQS(队列)配置


Queue类上是否有一个方法可以指定队列配置中定义的特定连接? MySql有一个类似的选项,你可以在其中定义'mysql2',然后调用:

DB::connection('mysql2')->table('etc')->get();

队列有类似的选择吗?

就像是:

Queue::connection('sqs2')->push('MyQueue', array('message' => $message));

11800
2018-06-29 10:10


起源



答案:


显然我在没有意识到的情况下回答了我自己的问题。您可以拥有多个队列,并使用连接方法指定要将消息推送到哪个队列。

对于任何感兴趣的人来说,这是我的部分配置的样子:

    'default' => 'sqs',

   'connections' => array(

    'sync' => array(
        'driver' => 'sync',
    ),

    'beanstalkd' => array(
        'driver' => 'beanstalkd',
        'host'   => 'localhost',
        'queue'  => 'default',
    ),

    'sqs' => array(
        'driver' => 'sqs',
        'key'    => 'xxxxxxxxxxxx',
        'secret' => 'yyyyyyyyyyyyyy',
        'queue'  => 'https://sqs.us-west-2.amazonaws.com/zzzzzzzzz',
        'region' => 'us-west-2',
    ),

    'sqs2' => array(
        'driver' => 'sqs',
        'key'    => 'uuuuuuuuuuuuu',
        'secret' => 'vvvvvvvvvvvvvvvv',
        'queue'  => 'https://sqs.us-west-2.amazonaws.com/wwwwwwwwwww',
        'region' => 'us-west-2',
    ),

14
2018-06-29 11:13



为了清楚起见,我必须补充一点,在这种情况下你必须启动监听器 php artisan queue:work sqs2不是 php artisan queue:work --queue=sqs2。我花了一些时间才意识到。 - Vitaly Chirkov
按照上面的配置,它的价值是什么 QUEUE_DRIVER 来自`.env'配置?它真的有效吗? - Alankar More


答案:


显然我在没有意识到的情况下回答了我自己的问题。您可以拥有多个队列,并使用连接方法指定要将消息推送到哪个队列。

对于任何感兴趣的人来说,这是我的部分配置的样子:

    'default' => 'sqs',

   'connections' => array(

    'sync' => array(
        'driver' => 'sync',
    ),

    'beanstalkd' => array(
        'driver' => 'beanstalkd',
        'host'   => 'localhost',
        'queue'  => 'default',
    ),

    'sqs' => array(
        'driver' => 'sqs',
        'key'    => 'xxxxxxxxxxxx',
        'secret' => 'yyyyyyyyyyyyyy',
        'queue'  => 'https://sqs.us-west-2.amazonaws.com/zzzzzzzzz',
        'region' => 'us-west-2',
    ),

    'sqs2' => array(
        'driver' => 'sqs',
        'key'    => 'uuuuuuuuuuuuu',
        'secret' => 'vvvvvvvvvvvvvvvv',
        'queue'  => 'https://sqs.us-west-2.amazonaws.com/wwwwwwwwwww',
        'region' => 'us-west-2',
    ),

14
2018-06-29 11:13



为了清楚起见,我必须补充一点,在这种情况下你必须启动监听器 php artisan queue:work sqs2不是 php artisan queue:work --queue=sqs2。我花了一些时间才意识到。 - Vitaly Chirkov
按照上面的配置,它的价值是什么 QUEUE_DRIVER 来自`.env'配置?它真的有效吗? - Alankar More