Sail: опашки и workers
Как да пускате Laravel опашки, когато приложението е в Sail. За Redis/RabbitMQ контейнери вижте Бази данни и услуги; за .env — Среди и деплой.
Навигация: Всички инструменти · Sail · БД · Env · Диагностика
Съдържание
- Връзки накратко
queue:workв Sail- Horizon (Redis)
- RabbitMQ и AMQP пакети
- Неуспешни jobs и повтори
- Промени в кода и
queue:restart - Планировчик (
schedule:run) - Контраст с production
Връзки накратко
| Драйвер | В 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 пакети
- Услуга в Compose (пример).
- AMQP пакет; publish config.
QUEUE_CONNECTIONпо документация.sail artisan queue:work rabbitmq
Неуспешни jobs и повтори
- Миграция
failed_jobsприdatabasefailed driver. sail artisan queue:failedsail 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 |