我在MySQL中有一个有时间条目的数据库。有超过1000个时间条目。我想在那时提取时间并准确运行PHP脚本..
我曾尝试连续运行PHP脚本来检查时间,但我的服务器不允许运行脚本超过60秒。
EDIT。我必须每秒检查一次数据库。还有其他选择吗?
答案 0 :(得分:5)
使用pear包,System_Daemon
答案 1 :(得分:3)
尝试Unix的cron。
答案 2 :(得分:3)
您需要一些外部服务来执行脚本。在Unix机器上,那将是cron。在Windows框中,使用Task Scheduler。
答案 3 :(得分:1)
您是否考虑过将您的进程编写为服务器守护程序。它将启动并永远运行一段时间。每隔几分钟或者经常你会喜欢它可以检查下一个x分钟的运行时间。您排队请求,每当这个时间到来时,您就会启动您需要运行的脚本。我不认为cron是你想要的,因为你试图在任意时间安排未来事件......而且我确信你正在尝试每秒检查数据库。
答案 4 :(得分:0)
您必须使用暂停PHP脚本的sleep(arg)
函数一段时间,然后继续。
sleep(50); //Pauses
myFunction(); //Runs after the pause
例如,这会暂停脚本50秒。
答案 5 :(得分:0)
编写PHP脚本以从数据库中读取并向crontab添加条目以使脚本在所需的时间运行
答案 6 :(得分:0)
保持进程运行不是一个非常好的解决方案,尤其是因为您需要确保它继续运行。大概你知道下一次发生的时间 - 所以使用'atd'来安排它 - 当被触发时,脚本也应该在何时以及如何安排下一个工作时工作。
这确实意味着工作被链接 - 一个人的失败打破了链条,大多数atd实现的粒度也可能相当高。
您可能希望使用更复杂的调度工具(如Nagios)或流程监控类型方法(如DJB的daemontools或Oracle的OPMN)。
℃。
答案 7 :(得分:0)
DJB的DAEMONTOOLS很棒。所以,显然,系统和/或暴风雨,虽然Remnant扮演一个真正的wanker。
答案 8 :(得分:0)
推荐的Pear包 - system_daemon看起来很棒。但是,作者现在建议使用Ubuntu中随时可用的新功能:upstart