Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在laravel中完成队列后执行任务_Laravel_Queue - Fatal编程技术网

在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

为什么不直接在队列侦听器的末尾发送电子邮件呢?电子邮件是在队列本身中发送的,我想在队列完成执行后执行任务。