Laravel - 自动执行排队作业

use*_*861 6 php laravel laravel-queue laravel-jobs

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

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

dispatch(new SendStartPatEmail($data));
Run Code Online (Sandbox Code Playgroud)

记录保存在表作业中。

但是要执行这项工作,我必须php artisan queued:work手动运行。我怎样才能自动执行此操作?

Jon*_*hon 5

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

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

配置/队列.php

'default' => env('QUEUE_DRIVER', 'sync'),
Run Code Online (Sandbox Code Playgroud)

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

.env

QUEUE_DRIVER=sync
Run Code Online (Sandbox Code Playgroud)