register_shutdown_function 在windows的 fpm进程中执行是同步执行完后才输出的问题
问题:
register_shutdown_function函数 在windows的fpm进程中执行完后才会返回给客户端。
目前情况:
下方示例程序在linux中是输出code:1,之后再执行sleep,并且不会输出”register”,但是在windows中等sleep执行完后返回code:1再输出量”register”
期望:
无论是windows还是linux都是给客户端返回code:1,然后后台继续执行register的函数内部逻辑
示例:
function test(){
register_shutdown_function(function(){
sleep(10);
echo "register";
});
return response()->json(['code'=>1]);
}
我猜测你使用的是
Laravel
框架,在Linux
下可以是因为Laravel
调用了fastcgi_finish_request()
。而
fastcgi_finish_request()
是FPM
函数,且Windows
下没有替代品。所以你的需求据我所知无法做到