标题里说的'重置'可能不准备。下面是我的问题
当我在代码里使用sleep()
这个函数,然后使用php start.php status
命令查看进程时,http响应会立刻返回,是什么情况呢?
我本意是,写一个接口,故意10s后返回结果。然后我想看看我在客户端多次(比如3次)请求后是每个都是10s返回响应,还是一共得30s以后才返回全部响应。
在3次请求期间,我执行php start.php status
导致结果立马被返回了。
public function index(Request $request)
{
sleep(10);
return json(['code'=>0, 'msg'=>'OKKKKKKKKKKKKKKKKKKKKKKKKK']);
}
<video src="https://s3.keer.me/2024/10/6721d5e922a47.mp4"></video>
Workerman version:4.1.15 PHP version:8.2.14
start time:2024-10-29 17:08:09 run 0 days 21 hours
load average: 0.01, 0.09, 0.06 event-loop:\Workerman\Events\Select
2 workers 5 processes
业务执行exit die语句会导致进程退出,并显示WORKER EXIT UNEXPECTED错误。当然,进程退出了会立刻重启一个新的进程继续服务。如果需要返回,可以调用return。sleep语句会让进程睡眠,睡眠过程中不会执行任何业务,框架也会停止运行,会导致该进程的所有客户端请求都无法处理。
https://www.workerman.net/doc/workerman/must-read.html
建议你还是多看看官方文档
感谢大佬提醒。 exit和die这2个我刚学框架的时候也注意看了,sleep确实没注意看到。 但这玩意确实10s后还是返回了,不太清楚具体逻辑。