Laravel 5.5 - Уведомления не ставятся в очередь?
У меня есть следующий класс уведомлений:
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
class ConfirmEmailNotification extends Notification implements ShouldQueue
{
use Queueable;
public function __construct()
{
//
}
public function via($notifiable)
{
return ['mail'];
}
public function toMail($notifiable)
{
$user = $notifiable;
$url = url('/register/confirm/'. $user->confirmation_token);
return (new MailMessage)
->subject('Confirm Email')
->markdown('emails.confirm', ['user' => $user, 'url' => $url]);
}
public function toArray($notifiable)
{
return [
//
];
}
}
В моем контроллере у меня есть следующее:
$when = now()->addSeconds(30);
$user->notify((new ConfirmEmailNotification())->delay($when));
Но ничего не добавляется в таблицу очередей - электронные письма отправляются мгновенно?
Я настроил очередь следующим образом.
В моем файле env:
QUEUE_DRIVER=database
В моем config/queue.php я переименовал таблицу следующим образом:
'database' => [
'driver' => 'database',
'table' => 'queued_jobs',
'queue' => 'default',
'retry_after' => 90,
],
Запустите следующее:
php artisan queue:table
php artisan migrate
php artisan queue:work
я пробовал php artisan config:clear
но без разницы
Есть идеи, парни?
2 ответа
В моем случае я забыл обновить свойство QUEUE_CONNECTION в файле .env .
После обновления QUEUE_CONNECTION в базе данных все заработало как положено.