Через фасад отправляю уведомления с задержкой
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 у канала даже не вызывается. При этом в очередь все задания попадают