Ларавел 5.6.Присоединить состояние к работнику очереди - PullRequest
0 голосов
/ 27 сентября 2018

Можно ли каким-либо образом присоединить состояние к работнику очереди.

Например,

queue:work --on-account=some@mail.com

, а затем использовать эту переменную --on-account в заданиях.

Основная идея заключается в том, что я могу иметь только одного работника на учетную запись из-за некоторых ограничений.И это никогда не изменится.Таким образом, единственный способ масштабирования - это добавить больше учетных записей.

Каждое задание может обрабатываться с любым аккаунтом

Я приму

Это невозможно из-за XYZ.Используйте эту технику для достижения того же результата.

В качестве ответа тоже.

PS

Это , а не , дублирование Запуск очереди ремесленников: работа с дополнительными аргументами , потому что его ответ не подходит в моем случае.

1 Ответ

0 голосов
/ 20 октября 2018

Как насчет использования env vars?

вы бы запустили свою очередь следующим образом:

export ACCOUNT="some@email";php artisan queue:work , а затем, на рабочем месте, вы бы

$account getenv('ACCOUNT');

Другая идеяможет быть использование функциональности соединений:

https://laravel.com/docs/5.7/queues#running-the-queue-worker

Цитирование

Вы также можете указать, какое соединение очереди должен использовать работник.Имя соединения, передаваемое рабочей команде, должно соответствовать одному из соединений, определенных в вашем файле конфигурации config / queue.php:

Очередь php ремесленника: work redis

Вы можете настроить своего работника очередиеще дальше, обрабатывая только определенные очереди для данного соединения.Например, если все ваши электронные письма обрабатываются в очереди электронной почты в вашем соединении с очередью redis, вы можете выполнить следующую команду, чтобы запустить работника, который обрабатывает только эту очередь:

php artisan queue: work redis --queue = emails

Это, вероятно, будет самым чистым решением, по крайней мере, с точки зрения laravel.Если я не пропустил, в чем именно проблема.

...