首页 > 解决方案 > Laravel - 自动执行排队的作业

问题描述

我有工作要发送几封电子邮件。

在我的控制器中,我称之为工作:

dispatch(new SendStartPatEmail($data));

记录保存在表作业中。

但要执行这项工作,我必须php artisan queued:work手动运行。我怎样才能自动做到这一点?

标签: phplaravellaravel-queuelaravel-jobs

解决方案


有很多不同的方法,都取决于您使用的环境。Laravel 倾向于推荐使用Supervisor来监控你的队列工作者并保持他们运行。

或者,您可能希望立即执行作业,而不是将它们添加到队列中。您可以通过sync在配置中将队列驱动程序设置为 来做到这一点:

配置/队列.php

'default' => env('QUEUE_DRIVER', 'sync'),

或在您的.env文件中(假设您的配置设置如上)

.env

QUEUE_DRIVER=sync

推荐阅读