免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2956 | 回复: 7
打印 上一主题 下一主题

php是如何实现定期自动执行功能的 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-05 00:33 |只看该作者 |倒序浏览
由于我不能在服务器上操作,所以,不考虑使用crontab或者windows计划任务



【我希望实现的功能】:

每隔2分钟自动将一个txt文本的数据自动导入到mysql中,



【目前已经实现了】:

数据导入的代码已经写好了,但是必须得执行一个页面,通过客户端刷新页面来实现该功能



【难点】:

如何能在无需客户端刷新页面的情况下也可以定期自动执行呢





PS:

Discuz里面有类似的功能,比如定期的刷新在线人数的统计,比如定期删除几天前的帖子等等,这些肯定也不是在服务器上通过计划任务或者crontab来实现的。

论坛徽章:
0
2 [报告]
发表于 2008-09-05 02:06 |只看该作者
php作shell运行就可以了,但是一般的虚拟主机就不可以了,有ssh的权限就可以,

如果单纯是虚拟主机的话,只能在页面里搞了。

论坛徽章:
0
3 [报告]
发表于 2008-09-05 06:33 |只看该作者
在页面里做。

论坛徽章:
0
4 [报告]
发表于 2008-09-05 08:32 |只看该作者
单纯用PHP实现不了你所要的功能

论坛徽章:
0
5 [报告]
发表于 2008-09-05 22:08 |只看该作者
各位大大,如果在页面里面做的话,就必须要客户端打开页面才能激活页面中的程序呀


我觉得既然DZ能做到,那就应该有法子的呀!(DZ中并没有使用shell的方式)



谢谢楼上的各位兄弟,不过还是希望继续再探讨一下这个问题

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:55:28
6 [报告]
发表于 2008-09-06 10:17 |只看该作者
目前想到两种方法:

1、如果你的站点访问量比较大的话,在每个页面加入js请求你那个数据导入的php文件,计算时间,选择是否执行,这样由于访问量比较大,可以近似认为是定期执行,当然,实际上不是,phpwind是用这种方式。我估计discuz也差不多吧;

2、本地开台机器,写个脚本,请求服务器上的那个php文件,这个脚本放到计划任务里定期执行,不过你本地这台机器得保持开着的状态。

论坛徽章:
0
7 [报告]
发表于 2008-09-06 14:45 |只看该作者
如果是自己写的php程式的话,可以设定在那个时段有人第一次访问时,执行脚本,然后输出页面"系统在维护,请稍候登录"

那样就可以了,当然也可以挂js调用你写的php, 或者学楼上说,你定时访问那个页面也可以,那时,那个脚本设定记得设定php的超时长一点时间

论坛徽章:
0
8 [报告]
发表于 2008-09-06 17:17 |只看该作者
你在生成txt文本的时候算一下时间,过2分钟的话就导入,没过就不导入呗

这跟具体需求有关,不一定非要2分钟,txt文本变没变都导入
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP