如何在laravel 5.1队列中使用除默认值之外的其他QUEUE_DRIVER?

时间:2016-02-03 11:58:31

标签: php laravel-5.1 laravel-queue

我在queue.php中的应用程序我设置了:

'default' => env('QUEUE_DRIVER', 'rabbitmq'),

这适用于app中的大多数作业,但我也想使用'database'驱动程序并将作业添加到postgresql db。

当然,如果我将默认设置更改为:

'default' => env('QUEUE_DRIVER', 'database'),

然后,rabbitmq不起作用。

我不知道如何使用其他'QUEUE_DRIVER'而不是默认值?

我想将它们用于不同的工作。

它不起作用:

php artisan queue:listen database

因为那里什么也没有。

我会很高兴得到任何帮助。

1 个答案:

答案 0 :(得分:2)

来自https://github.com/illuminate/queue/blob/master/README.md

use Illuminate\Queue\Capsule\Manager as Queue;

$queue = new Queue;

$queue->addConnection([
    'driver' => 'beanstalkd',
    'host' => 'localhost',
    'queue' => 'default',
]);

// Make this Capsule instance available globally via static methods... (optional)
$queue->setAsGlobal();

通过这种方式,您应该能够使用自定义连接/驱动程序创建另一个队列对象而不是默认队列对象(例如,将其命名为$rabbitQueue)。对该实例的所有后续$rabbitQueue->push()调用都会将消息推送到RabbitMQ。其他$queue->push()仍使用默认连接。