php - Laravel 队列立即发送而不是延迟并且数据不存储在数据库中
问题描述
我正在尝试通过排队邮件来发送多封电子邮件。我的邮件被立即发送出去,而不是尊重我设置的延迟。
//in controller
SendMailOfficeAssignment::dispatch($email, $fullname, $officeName)->delay(now()->addMinutes(5));
邮寄类:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class OfficeAssignmentNotification extends Mailable
{
use Queueable, SerializesModels;
...
public function build()
{
return $this->markdown('emails.the_mail');
}
}
创建的工作:
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
class SendMailOfficeAssignment implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
...
public function handle()
{
sendMailHelperFunction($this->param1, '\App\Mail\OfficeAssignmentNotification', [$this->param2, $this->param3]);
}
}
我两个都有
php artisan config:clear
php artisan config:cache
我之前也运行过这个:
php artisan queue:table
php artisan migrate
然而,没有任何东西存储在数据库中。
我也在我的数据库中尝试了这两种方法:
QUEUE_DRIVER=database
QUEUE_CONNECTION=database
解决方案
使用 later() 如下:
$when = now()->addMinutes(10);
SendMailOfficeAssignment::dispatch($email, $fullname, $officeName)
->later($when,"send-mail-job");
推荐阅读
- javascript - Firebase 实时数据库的快照不完整/缺少几层
- angular - Jhipster下载过程中如何更改文件名(java + angular)
- python - 无法发送多封电子邮件,因为我被中止(断开连接)
- firebase - 已完成的 firebase 函数中的异步调用会发生什么?
- php - php simplexml元素属性特定值
- javascript - (显示更多)/(显示更少)按钮 VueJS 中的问题
- java - java - 如何在java中将字符串x.*y拆分为x和y?
- macos - 在 Mac OS X Catalina 上安装 valgrind
- sql - 如何在 Laravel 5.8 中获取关注用户的帖子
- elixir - 自定义验证导致插入/4