для очереди default.
2. В очереди или появилась, или была задача QueueExport.
3. Задача выполнилась.
4. Взята следующая задача из дефолтной очереди AppendView…
5. Задача не выполнена, т.к. воркер - прибит через ктрл-ц.
6. Запущен обработчик на другой очереди, который взял и выполнил задачу QueueExport.
Других задач в очереди unloading нет. Обработчик - ждет.
Что не так то?
Угу, проблема в том, что именованная очередь висит и третий процесс, который отвечает за создание файла не появляется. Как только убирают name у очереди и запускаю default, то видно, что третий процесс появляется и продолжает все ок работать. А как сделать, чтобы с именованной очередью появился третий процесс?
Значит вы «третью» задачу диспачите в дефолтную очередь. Диспачьте в нужную..
public function export() { (new UserStatExport())->queue('users.xlsx', 'public')->onQueue('unloading'); return back()->withSuccess('Export started!'); } А у меня такой код. Это с доков взял. Может тут ошибка?
На скрине есть ее запуск и успешная обработка в очереди unloading.
А я могу чтобы очередь оставалась default. При этому у меня есть другие очереди. Но, чтобы в supervisor, они запускались отдельно?
Уберите onQueue - будет диспатчиться в дефолтную
А еще один вопрос, тут у меня все правильно стоит в конфиге? Может очередь не запускается, так как тут, что-то не верно? [program:queue-worker] process_name=%(program_name)s_%(process_num)02d command=php /path/to/your/project/artisan queue:listen --timeout=0 autostart=true autorestart=true numprocs=8 redirect_stderr=true stdout_logfile=/path/to/your/project/storage/logs/worker.log
точнее одна очередь запускается, а вторая не запускается
зачем тут listen? тут queue:work прописывается
Тут один конфиг для дефолтной очереди на 8 воркеров.
у него тут 8 listen-ов которые в свою очередь запустят work-ы, это не конфиг это "помойка" несуразная какая-то
Про 8 воркеров - я так и сказал, Про listen - видел комент, спрашивающий тоже должен был его увидеть. Он пока второй конфиг для второй очереди запустить не может))
я бы на месте топикстартера взял laravel horizon, ему достаточно одного запуска и контроль через supervisor, что запущен, а все остальные процессы управляются через конфиг приложения. т.е. один раз настроил и забыл про supervisor и более в него не залазишь
Могу уступить место помогающего)), только топикстартер куда-то пропал. Мож конфиги правит))
Обсуждают сегодня