佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1484|回复: 12

PHP Schedule Task 遇到技术瓶颈,望高手赐教。

[复制链接]
发表于 14-10-2008 11:40 AM | 显示全部楼层 |阅读模式
先说明一下我的问题。

问题:

我在 mysql create 了一个 table,里有的 field 有 startdate,starttime,filetoexecute。
我想要要 PHP 在规定的 startdate,starttime,去执行 filetoexecute。。

就在这里,我遇到瓶颈。。

由于 Php 里没有类似 cronjob 的功能,google 了很久,
基本上只能通过以下两种方式替代:
1)Linux/Unix底下 - crontab
2)Windows底下 - Windows Schedule task

可是,这两个都必须预先设定好。。
如果我是读取 mysql 的 data,时间到就让 php 去执行,具体应该怎样实现呢?

总不可能像 Discuz! 的计划任务那样,通过 user 访问的时候去触发吧。。--a
万一没人的话 schedule task 不就挂了。。?

希望和有我遇到同样问题的朋友可以分享心得与概念,也望高手赐教~~
回复

使用道具 举报


ADVERTISEMENT

发表于 14-10-2008 03:08 PM | 显示全部楼层
我的逻辑是:
方法一:
     - 最简单的,弄一个webiste, 每个一秒 auto refresh content。然后你就自己打开这个webiste就好了

方法二:
     - 漂亮点的:
         弄一个 main page, 然后里面用 ajax + javascript.
     - javascript 写一个 timer, 每一秒就 call ajax page 去检查 db + 执行任何指令
     - 用 ajax 的好处是 main page 不会一直 refresh~
回复

使用道具 举报

发表于 14-10-2008 03:11 PM | 显示全部楼层
其实 linux 的 cronjob 在早期的时候,就是每秒去检查有什么任务需要执行的。(不过的 algorithm 好像有 improve....至于如何,就没有追查了,

回复

使用道具 举报

 楼主| 发表于 15-10-2008 11:02 AM | 显示全部楼层
感谢biau_dart网友的回复。

我是用 Windows Server 2003 的。
一开始的逻辑是使用 Windows Schedule Task 每5分钟执行 chech.php 一次,
check php 会去检查是不是有任务时间到要执行。。

可是,总觉得好没有效率又浪费resource。。
回复

使用道具 举报

发表于 15-10-2008 11:15 AM | 显示全部楼层
http://www.sitepoint.com/article/introducing-cron/

看看这个吧。。。
我也不是很明白。。。。哈哈哈。。
回复

使用道具 举报

 楼主| 发表于 15-10-2008 12:40 PM | 显示全部楼层

回复 5# lawty 的帖子

谢谢你。

嗯,在 Linux 是可以用 crontab。
可是我的 server 是 Windows Server 2003。
回复

使用道具 举报

Follow Us
 楼主| 发表于 15-10-2008 12:42 PM | 显示全部楼层
我想到一个概念不知道行不行,希望各位大侠再赐教。

就是当我 insert startdate,starttime,filetoexcute 进入 mysql 后,
在通过 PHP 写个 script,add 进 Windows Schedule task 里面,时间到,Windows 自动执行。。

问题是,怎样用 PHP add 进 Windows 的 Schedule task 。。?
哈哈。。
回复

使用道具 举报

发表于 15-10-2008 02:44 PM | 显示全部楼层
ok
试这个
DOS 指令:at
eg:
c:\>at 6:50PM /interactive c:\winnt\beep.bat
http://www.computerhope.com/at.htm (manual)

然后,php 就用 exec()
echo exec(‘at 6:50PM /interactive c:\winnt\beep.bat‘);

如果可以,通知一声哦
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 15-10-2008 07:30 PM | 显示全部楼层

回复 8# biau_dart 的帖子

哈哈,嗯,我先尝试看看。
有成果再告诉大家。
回复

使用道具 举报

发表于 15-10-2008 11:31 PM | 显示全部楼层
硬要把汽车当成飞机
直接用cron吧
回复

使用道具 举报

 楼主| 发表于 16-10-2008 12:21 AM | 显示全部楼层

回复 10# megablue 的帖子

你确定你有看清楚主题吗?
回复

使用道具 举报

发表于 16-10-2008 09:22 AM | 显示全部楼层
原帖由 megablue 于 15-10-2008 11:31 PM 发表
硬要把汽车当成飞机
直接用cron吧


他是 windows server 2003 啦…… ^^
回复

使用道具 举报

发表于 16-10-2008 09:51 PM | 显示全部楼层
1. 把你的php scheduler写好,然后用windows scheduler和php.exe定时执行scheduler
2. 用cygwin的cron
3. 用.NET或Java
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 22-12-2025 02:59 PM , Processed in 0.116920 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表