Laravel 5.5 - 通知没有被排队?

4

我有以下的通知类:

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个回答

4
通过重新启动 php artisan serve 解决问题。

0
在我的情况下,我忘记更新.env文件中的QUEUE_CONNECTION属性。
QUEUE_CONNECTION更新为database后,它就按预期工作了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接