我在控制器中的函数调用并行,并且在laravel中创建了一个使用队列的作业,因为并行调用会导致问题
我创建队列如下:
public function serve($id)
{
$this->dispatch(new OrderServeJob($id));
return response()->json(true);
}
然后我跑:
php artisan queue:work
但是我对此方法有疑问
我希望laravel等待队列结束,然后返回response()->json(true)
然后将用户重定向到另一个地址
答案 0 :(得分:0)
您可以使用队列事件。说明如何在文档中使用: job Events laravel
答案 1 :(得分:0)
如果您希望在通话结束之前处理您的工作,则应使用sync
驱动程序进行工作。您可以自定义要在您的工作中使用的Job连接:
class OrderServeJob implements ShouldQueue {
public $connection = 'sync'; // <---
//
}
您可以在config/queue.php
文件中查看此(和其他)队列配置:
'connections' => [
'sync' => [
'driver' => 'sync',
],
//
]