Sail: опашки и workers

Как да пускате Laravel опашки, когато приложението е в Sail. За Redis/RabbitMQ контейнери вижте Бази данни и услуги; за .envСреди и деплой.

Навигация: Всички инструменти · Sail · БД · Env · Диагностика

Съдържание


Връзки накратко

| Драйвер | В Sail | |--------|--------| | sync | Debug без worker; без паралелизъм. | | database | Таблица jobs + един или повече workers. | | redis | Типично с Horizon; нужен Redis услуга. | | sqs | Облачна опашка; по-рядко само локално. | | rabbitmq (пакет) | AMQP; контейнер + пакет. |

QUEUE_CONNECTION в .env. След промяна: sail artisan config:clear.


queue:work в Sail

sail artisan queue:work
sail artisan queue:work redis --queue=high,default --tries=3 --timeout=90
sail artisan queue:work --once

Horizon (Redis)

QUEUE_CONNECTION=redis и инсталиран Horizon.

sail artisan horizon

В production Supervisor/systemd; в Sail — Ctrl+C.


RabbitMQ и AMQP пакети

  1. Услуга в Compose (пример).
  2. AMQP пакет; publish config.
  3. QUEUE_CONNECTION по документация.
  4. sail artisan queue:work rabbitmq

Неуспешни jobs и повтори

  • Миграция failed_jobs при database failed driver.
  • sail artisan queue:failed
  • sail artisan queue:retry {id}
  • sail artisan queue:flush

Промени в кода и queue:restart

sail artisan queue:restart

Локално: --once или --max-jobs=1.


Планировчик (schedule:run)

  • Ръчно: sail artisan schedule:run
  • sail run --rm laravel.test php artisan schedule:work
  • Production: cron всяка минута.

Контраст с production

| Тема | Sail | Production | |------|------|------------| | Worker lifecycle | Терминал / Horizon foreground | Supervisor, K8s, managed | | Scaling | Един контейнер | Много workers | | Redis | Един контейнер | Кластер / managed |


Вижте също

← Всички инструменти