Я действительно смущен и был бы рад, если бы вы могли пролить немного света.
Что у меня есть:
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