Как использовать другой QUEUE_DRIVER, чем по умолчанию в очереди laravel 5.1?

Я установил свои приложения в queue.php:

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

это подходит для большинства рабочих мест в приложении, но я бы хотел использовать драйвер базы данных и добавлять рабочие места в postgresql db.

Это работает, конечно, если я изменяю настройку по умолчанию на:

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

Но тогда rabbitmq не работает.

Я не знаю, как использовать другой «QUEUE_DRIVER», чем по умолчанию?

Я хотел бы использовать оба для разных работ.

Это не работает:

php artisan queue:listen database

потому что там ничего нет.

Буду рад любой помощи.

3

Решение

От 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() все еще использую соединение по умолчанию.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]