免费注册 查看新帖 |

Chinaunix

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

哪位知道像discuz的计划任务是如何实现的 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-31 14:04 |只看该作者 |倒序浏览
哪位知道像discuz的计划任务是如何实现的,google了一下有人说写个角本然后用系统自带的计划任务来达到,但是请注意我问的是基于php本身的,因为我看discuz也没用到上面说的方法

论坛徽章:
0
2 [报告]
发表于 2008-01-31 14:30 |只看该作者
PHP本身是没这个功能的 .DISCUZ的计划任务可以这样理解 ,每次页面被请求的时候都会去检查当前有没有需要执行的"计划任务" ,有则处理之 ,并修改下次执行的时间 ,没有就继续正常请求 .

这个过程可以根据实际情况优化一下 .

论坛徽章:
0
3 [报告]
发表于 2008-01-31 22:38 |只看该作者
都是通过用户触发的.

论坛徽章:
0
4 [报告]
发表于 2008-02-01 14:41 |只看该作者
但纯的apache+php是很难实现的.如果你想做任务.唯一的方法就是使用 死循环来实现.但最好不要放在apache里跑.可以独立起个进程来维护你的死循环.

论坛徽章:
0
5 [报告]
发表于 2008-02-02 17:10 |只看该作者
用系统自带的计划任务来执行是不可能的……太麻烦了,不同系统计划任务执行都不同,且设置也麻烦,呵呵

论坛徽章:
0
6 [报告]
发表于 2008-02-03 00:01 |只看该作者
discuz 是学vbb的,vbb很早就实现了

工作原理

将所有的任务计划放置在数据库中,然后再用户访问页面的时候触发一个 1px的img 比如<img src=cron.php>

cron.php会根据任务时间和周期进行任务计划

论坛徽章:
0
7 [报告]
发表于 2008-02-05 09:15 |只看该作者
可以将要执行的任务放入数据库然后在写一个后台程序去解析数据库的内容或者利用系统的计划任务来启动解释程序去执行.

论坛徽章:
0
8 [报告]
发表于 2008-02-05 16:35 |只看该作者
原帖由 redskywy 于 2008-2-5 09:15 发表
可以将要执行的任务放入数据库然后在写一个后台程序去解析数据库的内容或者利用系统的计划任务来启动解释程序去执行.

这个比较可行。
如果靠用户访问网页的时候去触发,万一没有人访问就挂了,哈哈。

论坛徽章:
0
9 [报告]
发表于 2008-02-05 22:13 |只看该作者
不好意思,这种东西php是不支持的.而且,这种计划性的东西,最好不要使用那种认程序经常来检查是否应该执行,这种方法从表面上看可以实现计划任务的功能,但是对服务器的负担和人为的因素很大,不可行的

LZ如果是用的linux的系统,可以使用crontab计划任务来执行,windows的也有这个功能的,但是本人只玩linux,不玩windows这么高级的功能,所以不知道,LZ可以去baidu查查看

论坛徽章:
0
10 [报告]
发表于 2008-02-08 17:20 |只看该作者
一般都是通过用户去浏览触发的.

BTW, 我都不知道怎么玩LINUX, 还在学校, 呆瓜了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP