Вступить в клуб →
средняявопросLaravel: Eloquent, очереди и события

Слушатель события в очереди не находит в базе только что созданный заказ

DB::transaction(function () use ($data) {
    $order = Order::create($data);
    OrderPlaced::dispatch($order);   // слушатель реализует ShouldQueue
    $this->reserveStock($order);     // ещё несколько секунд
});

Слушатель, выполняемый воркером очереди, иногда падает: заказ не найден. Как исправить?

  • Обрабатывать событие после коммита транзакции
  • Добавить sleep(5) в начало слушателя
  • Вынести dispatch до начала транзакции
  • Сделать слушатель синхронным

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела