Laravel 队列未插入 table,但工作仍在执行
Laravel Queue not inserting into the table, but the work still executes
所以我正在尝试创建一个排队的作业,但它没有被添加到数据库中,或者 php artisan queue:listen database
没有显示任何内容。然而,handle()
函数中的工作被执行。
工作class:
class OrderCreatedJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function __construct() {
//
}
public function handle() {
Notification::route('mail', 'my@email.com')->notify(new TestNotif());
}
}
控制器函数(另请注意,addMinutes 延迟永远不会发生,它会立即发送)
public function jobTest() {
$this->dispatch((new OrderCreatedJob())->delay(Carbon::now()->addMinutes(1)));
}
在 .env 中我也添加了 QUEUE_DRIVER=database
。
所以问题是电子邮件正在发送,但它是立即完成的,浏览器仍然需要时间来处理请求。该作业也没有出现在数据库中,延迟也没有。
我哪里错了?
所以解决方法是在 env 文件中包含 QUEUE_CONNECTION=database
,而不是 QUEUE_DRIVER=database
所以我正在尝试创建一个排队的作业,但它没有被添加到数据库中,或者 php artisan queue:listen database
没有显示任何内容。然而,handle()
函数中的工作被执行。
工作class:
class OrderCreatedJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function __construct() {
//
}
public function handle() {
Notification::route('mail', 'my@email.com')->notify(new TestNotif());
}
}
控制器函数(另请注意,addMinutes 延迟永远不会发生,它会立即发送)
public function jobTest() {
$this->dispatch((new OrderCreatedJob())->delay(Carbon::now()->addMinutes(1)));
}
在 .env 中我也添加了 QUEUE_DRIVER=database
。
所以问题是电子邮件正在发送,但它是立即完成的,浏览器仍然需要时间来处理请求。该作业也没有出现在数据库中,延迟也没有。
我哪里错了?
所以解决方法是在 env 文件中包含 QUEUE_CONNECTION=database
,而不是 QUEUE_DRIVER=database