发布网友 发布时间:2022-04-21 19:34
共2个回答
热心网友 时间:2022-04-06 11:37
不太懂php,不过编程思路是相同的,如果同样代码sleep60成功,sleep600不成功,那可能就是session控制的问题吧,如果不好控制也可以考虑就用sleep60的方法运行10次,第10次执行真正的代码,不过总感觉不必这样,应该有更好的办法,我曾经在iis上做过延时定时器,用的是cache的失效回调机制触发定时执行功能,不知道php上可行不可行,实在不行了再考虑一下我说的执行10次的low办法。。。
热心网友 时间:2022-04-06 12:55
你的业务逻辑是什么,是要做服务器定时任务,还是客户端长连接?
sleep为暂停执行,时间按秒计
如果要在浏览器的访问环境下做任务执行,最好在长时间执行前把session数据读出来然后调用一下session_write_close,以防session堵塞用户后面的访问进程
在后台执行的脚本中可以加些日志输出,以方便根据日志判断脚本的执行情况。你这个标注这个成功,那个不成功,不一定是实际情况,脚本出错也无法显示出来看到
php本身不适合做长连接,受限于web容器(如:iis 本身也有个脚本超时*,大部分web服务器会缓存输出的内容直到脚本完全执行完成才一起输出),业务场景不复杂的话,在客户端做定时轮询就好了,不会多复杂,如果访问量大的话,建议学一下swoole,比较适合做消息服务器