несколько очередей на одном сервере с другой средой (Laravel Forge) - PullRequest
0 голосов
/ 02 октября 2019

Я действительно смущен и был бы рад, если бы вы могли пролить немного света.

Что у меня есть:

1) Laravel Forge с одним сервером.

2) Два сайта (подготовка и производство)

3) 1 очередь для каждого (подготовка и производство в FORGE)

Проблема: Iесть PDF, который генерируется через очередь. Выглядело это так, что хотя очередь выполнялась из промежуточного кода, иногда очередь рабочего сайта работала. Прочитав много, я подытожил, что они связываются друг с другом, потому что они находятся на одном сервере .. Итак, вот что я сделал. Это config / queue.php.

'database' => [
     'driver' => 'database',
     'table' => 'jobs',
     'queue'  => env('QUEUE_NAME', 'default'), // i made this instead of default as it was
     'retry_after' => 90,
],

После этого, поскольку у меня есть разные env-файлы для подготовки и производства, я поместил туда разные значения QUEUE_NAME. скажем, в .staging.env QUEUE_NAME=staging и в .prod.env QUEUE_NAME=production.

Затем я перешел на промежуточный сайт My Laravel Forge, добавил следующую очередь:

Connection: database
Queue: staging

Я также перешел на сайт Prod моей Laravel Forge, добавил очередь, но другую по-другому.

Connection: database
Queue: production

После всего этого, похоже, проблема могла исчезнуть.

Вопрос 1) Как вы думаете, то, что я сделал, правильно и самое главное, достаточно, чтобы моя проблема больше никогда не возникала?

Вопрос 2) *Сценарий развертывания 1035 * для промежуточных и производственных сайтов имеет php artisan queue:restart в конце. Я думаю, что если я загружу что-то на промежуточный сервер и эта строка будет выполнена, это также перезапустит очередь производства. что кажется очень плохим. Я не смог найти ничего, чтобы передать параметр для перезапуска следующим образом:

php artisan queue:restart --queue=staging
...