2016-02-03 58 views
3

我我在queue.php应用我已设置:如何使用laravel 5.1队列中默认的其他QUEUE_DRIVER?

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

这是正确的在应用程序大多数就业机会,但我想用也“数据库”驱动程序和作业添加到PostgreSQL数据库。

它的工作原理,当然,如果我更改默认设置:

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

但随后的RabbitMQ不起作用。

我不知道如何使用其他'QUEUE_DRIVER'比默认?

我想用于不同的工作。

它不工作:

php artisan queue:listen database 

因为没有在那里。

我会很乐意提供任何帮助。

回答

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()仍然使用默认连接。

+0

谢谢,它有帮助。 我只是做了: Queue :: connection('database') - > push($ job); – SzK