0Pricing
PHP Academy · Урок

Основы очередей и драйверы

Разберитесь в асинхронной обработке и настройте драйверы очередей database или Redis

«Основы очередей и драйверы» — бесплатный урок PHP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.

Что такое очереди?

Очереди позволяют отложить медленные или ресурсоёмкие задачи (отправку электронных писем, изменение размера изображений, обращение к внешним API) для выполнения фоновыми рабочими процессами, сохраняя быстроту HTTP-ответов.

Архитектура очередей

Основной процесс (веб-сервер) помещает задания в очередь. Отдельные рабочие процессы извлекают задания и асинхронно выполняют их.

Доступные драйверы очередей

Laravel поддерживает несколько серверных систем очередей:

  • database — задания хранятся в базе данных (подходит для начала работы)
  • redis — быстрое решение, готовое к использованию в рабочей среде
  • sqs — AWS Simple Queue Service
  • beanstalkd — быстрый и лёгкий вариант
  • sync — выполняет задания немедленно (для локальной разработки)

Настройка драйвера очереди

Укажите драйвер в .env.

# .env
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379

Настройка драйвера database

При использовании драйвера database создайте таблицу заданий.

$ php artisan queue:table
$ php artisan migrate

Запуск рабочего процесса очереди

Рабочий процесс извлекает задания из очереди и выполняет их.

$ php artisan queue:work
# Or specify connection and queue:
$ php artisan queue:work redis --queue=emails,default

queue:listen и queue:work

queue:work загружает приложение один раз и обрабатывает задания в памяти — это быстрее, но после изменений кода требуется перезапуск рабочего процесса. queue:listen перезагружает приложение для каждого задания — это удобнее при разработке.

Неудачные задания

Если задание не удаётся выполнить после всех повторных попыток, оно сохраняется в таблице failed_jobs. Просматривайте такие задания и запускайте их повторно с помощью Artisan.

$ php artisan queue:failed
$ php artisan queue:retry all
$ php artisan queue:flush

Приоритеты очередей

Определите несколько именованных очередей и назначьте приоритеты при запуске рабочего процесса.

$ php artisan queue:work --queue=high,default,low
# Worker checks high first, then default, then low

Панель мониторинга Horizon

Для очередей Redis Laravel Horizon предоставляет красивую панель мониторинга в реальном времени с информацией о пропускной способности, неудачных заданиях и статистике рабочих процессов.

Выбор драйвера

Используйте sync локально, database для небольших проектов и redis для масштабирования в рабочей среде. Не используйте SQS, если вы уже не работаете в AWS и вам не требуется практически неограниченное масштабирование.

Итоги

Очереди передают медленные задачи фоновым рабочим процессам. Настройте драйвер в .env, создавайте задания с помощью Artisan и запускайте рабочие процессы через queue:work. Отслеживайте неудачные задания в таблице failed_jobs.

Быстрая проверка

Какой драйвер очереди выполняет задания немедленно в том же процессе?

Часто задаваемые вопросы

Урок «Основы очередей и драйверы» бесплатный?

Да — полный текст урока «Основы очередей и драйверы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Основы очередей и драйверы»?

Разберитесь в асинхронной обработке и настройте драйверы очередей database или Redis Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать PHP Academy?

Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Основы очередей и драйверы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке PHP Academy?

Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы очередей и драйверы
  2. Создание и отправка заданий
  3. Повторные попытки, задержки и цепочки заданий
  4. Мониторинг очередей с Laravel Horizon
← Назад к PHP Academy