Задать вопрос

Почему не отправляются уведомления в Laravel 8?

Через фасад отправляю уведомления с задержкой
foreach ($orders as $i => $order)
{
    Notification::send($order, (new OrdersDelivered($text_template))
        ->delay(now()->addSeconds($i * 30))
    );
}


Само уведомление выглядит так
class OrdersDelivered extends Notification implements ShouldQueue
{
    use Queueable;

    private string $text;

    public function __construct($text)
    {
        $this->text = $text;
    }

    public function via($notifiable): array
    {
        return [WhatsappChannel::class];
    }

    public function toWhatsapp($notifiable): WhatsappMessage
    {
        return (new WhatsappMessage())
            ->to($notifiable->client_phone)
            ->text($this->text)
            ->totalOrders($notifiable->total);
    }
}


Канал для отправки я сделал свой
class WhatsappChannel
{
    public function send(mixed $notifiable, Notification $notification)
    {
        $message = $notification->toWhatsapp($notifiable);
        WhatsappApi::send($message);
    }
}


Все это прекрасно работает, если не использовать очередь и не писать implements ShouldQueue. Мне же необходимо использовать очередь, но когда обработчик вытаскивает задания, то метод send у канала даже не вызывается. При этом в очередь все задания попадают 6200250f4c17b394092915.png
6200254d3374f313435916.png
  • Вопрос задан
  • 375 просмотров
Подписаться 3 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@v__V__v
Разработчик
Скорее всего надо запустить обработчик очереди, сама по себе очередь ничего не делает, необходимо выполнить команду
php artisan queue:work
либо
php artisan queue:listen
Обратите внимание, что обработчик, согласно документации, должен быть запущен перед отправкой уведомлений в очередь!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы