php怎么实现延时执行代码且访问不过期

php用sleep()做暂停一段时间的代码但是好像10分钟都暂停不了,也用了set_time_limit(0);但好像没用。1分钟时可以执行下面的代码,10分钟就不行了。... php用sleep()做暂停一段时间的代码但是好像10分钟都暂停不了,也用了set_time_limit(0); 但好像没用。1分钟时可以执行下面的代码,10分钟就不行了。 展开
 我来答
百度网友88897ec
2019-01-20 · TA获得超过188个赞
知道小有建树答主
回答量:269
采纳率:79%
帮助的人:73.2万
展开全部

不太懂php,不过编程思路是相同的,如果同样代码sleep60成功,sleep600不成功,那可能就是session控制的问题吧,如果不好控制也可以考虑就用sleep60的方法运行10次,第10次执行真正的代码,不过总感觉不必这样,应该有更好的办法,我曾经在iis上做过延时定时器,用的是cache的失效回调机制触发定时执行功能,不知道php上可行不可行,实在不行了再考虑一下我说的执行10次的low办法。。。

miniappcy3tv95eaedrf
2019-01-20 · TA获得超过2363个赞
知道大有可为答主
回答量:1909
采纳率:92%
帮助的人:1121万
展开全部
你的业务逻辑是什么,是要做服务器定时任务,还是客户端长连接?
sleep为暂停执行,时间按秒计
如果要在浏览器的访问环境下做任务执行,最好在长时间执行前把session数据读出来然后调用一下session_write_close,以防session堵塞用户后面的访问进程
在后台执行的脚本中可以加些日志输出,以方便根据日志判断脚本的执行情况。你这个标注这个成功,那个不成功,不一定是实际情况,脚本出错也无法显示出来看到
php本身不适合做长连接,受限于web容器(如:iis 本身也有个脚本超时限制,大部分web服务器会缓存输出的内容直到脚本完全执行完成才一起输出),业务场景不复杂的话,在客户端做定时轮询就好了,不会多复杂,如果访问量大的话,建议学一下swoole,比较适合做消息服务器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式