PHP是否可以限制函数执行时间,以使下列伪代码的功能得以实现?foreach($jobsas$job){try{run($job);}catch(TimeoutException$e){printf("Timeout:%s\n",$e->getMessage());continue;}}functionrun($job){//ssh,HTTPrequest,ConnectDBetc.}
2 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
//设置闹钟信号处理,抛异常退出循环declare(ticks=1);pcntl_signal(SIGALRM,function(){thrownewException('process_timeout');});//设置闹钟,5秒超时pcntl_alarm(5);$jobs=array_fill(0,1000,'job');foreach($jobsas$job){try{run($job);}catch(Exception$e){printf("Timeout:%s\n",$e->getMessage());exit;}}functionrun($job){//ssh,HTTPrequest,ConnectDBetc.sleep(1);}
www说
TA贡献1775条经验 获得超8个赞
推荐你一个框架swooole看你代码就是要处理一个花费时间比较长的任务swoole里的task,提交过去一个任务,立即返回,任务在后台自动运行,不用关注运行时间设置了set_time_limit()会使任务无法完成
添加回答
举报
0/150
提交
取消