在laravel中完成队列后执行任务
在在laravel中完成队列后执行任务,laravel,queue,Laravel,Queue,在laravel中,我有一个如下所示的队列 Mail::queue($notificationCreated->template, $data, function ($message) use ($data) { $message->to($data['email'], $data['first_name'])->subject($data['subject']); }); 是否可以在队列完成其执行后执行任务,即在发送邮件后执行任务 API中不存在类似的内容,因为这不是队列的
laravel
中,我有一个如下所示的队列
Mail::queue($notificationCreated->template, $data, function ($message) use ($data) {
$message->to($data['email'], $data['first_name'])->subject($data['subject']);
});
是否可以在队列完成其执行后执行任务,即在发送邮件后执行任务 API中不存在类似的内容,因为这不是
队列的重点
它是异步的,所以在调用Mail::queue
之后,您立即获得控制权,代码继续执行。这并不意味着实际的作业已经执行,只是它已经被安排好了。
没有办法在那里编写邮件::whenJobIsComplete
,因为这意味着整个代码的执行必须停止,等待作业完成。这不可能异步工作
但是,您可以定期轮询已完成的作业,并在发生这种情况时执行代码。API中有轮询失败作业的功能
但是最好的方法是写你自己的习惯,
以及在HandleWorkerRoutPut
之外添加功能。
同样,这是异步的,这段代码将来会在某个不确定的点上运行,甚至不接近您最初调用的位置Mail::queue
为什么不直接在队列侦听器的末尾发送电子邮件呢?电子邮件是在队列本身中发送的,我想在队列完成执行后执行任务。