我正在尝试学习 Laravel 中的作业和队列,当我尝试学习新东西时,我总是自己举一个基本的例子,并尝试更好地理解工作流程。
好的,问题来了
我在 Laravel 中创建了一个 Job,正如您在 handle 方法中看到的那样,我只是想在 laravel.logger 上打印一条简单的消息,这完全正常。
class SendEmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $email;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($email)
{
$this->email = $email;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
Log::info($this->email . '<<<<<<<<<<<<<<<');
}
}
我的问题是我想将这项工作延迟 2 分钟然后发送它,我已经尝试过这种方式但是没有成功,当调用索引方法时两个日志都立即打印但我想 $job = new SendEmailJob("This will show after 2 minutes");
在 2 分钟后被调用而不打印立即地
public function index(){
$on = Carbon::now()->addMinutes(2);
Log::info('Test');
$job = new SendEmailJob("This will show after 2 minutes");
$job->delay($on);
dispatch($job);
return "none";
}