[英]Async in Laravel 5.4 with Dingo API
我想用DINGO制作的APIS可以运行ASYNC。 目前,我的api是同步的,因为当我尝试使用sleep命令请求API然后我调用另一个api时,第二个api只是在睡眠时间传递firt请求时返回值。 这是我用来测试的代码:
第一条api路线:
public function checkLongRunning(Request $request){
$data = $request->all();
if($data['check'] == 1){
sleep(5);
return response()->json(['error' => 'slept in 5 secs'], 500);
}else{
return response()->json(['error' => 'bad request'], 500);
}
}
第二条api路线:
public function checkLongRunning2(Request $request){
$data = $request->all();
if($data['check'] == 1){
return response()->json(['error' => 'OK'], 500);
}else{
return response()->json(['error' => 'asd'], 500);
}
}
无论如何我可以使我的API(在Laravel 5.4中使用DINGO构建)运行ASYNC(当第一个api请求正在休眠时可以请求另一个api)吗?
谢谢。
您可以在完成所需的一切(Auth等)后立即响应请求,并且需要将中间件附加到端点,以便在返回响应后运行代码。
例:
在api.php中
$api->post('run', function () {
return response()->json([
"message" => "running"
], 200);
})->middleware("postRun");
在“postRun”中间件中
public function terminate($request, $response)
{
sleep(2000) // place your code here.
}
顺便说一句:你需要注册中间件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.