Cron 是一个用于 linux 的作业调度程序。它不能在 Windows 上工作(除非你开始喜欢 Cygwin 和 etecetera)。如果您必须在系统范围内支持它,跨各种未知系统并且全部使用 PHP(无法按原样安排事情),您可以求助于以下三种使用的解决方案中的任何一种:
来自地面控制的电话
(最好的资源,具体时间,最优雅的解决方案)
- 让你自己的机器运行 cron 和 ssh'ing 其他机器来运行命令
- 让您自己的机器运行 cron 并访问“秘密 url”的ro 运行命令
- 有一个外部服务,比如SetCronJob调用你的“秘密网址”
Random Job Runner
(最容易实现,资源适中)
如果您需要做一些不会直接影响用户在您网站上的行为方式的事情,并且它对时间不敏感(只需要做),您可以求助于以统计概率运行它。
// this will run on average once every 100 page views
if(rand(1, 100)==1) runJobQueue();
最坏
的情况(资源更难)
如果您的工作必须经常完成,因为它会直接影响用户并且它必须满足一些时间安排,您可以保存查询并使用上次运行时间戳更新数据库,并继续检查该工作是否必须重新执行跑
// if has passed 1 hour since last update... re-update it
$result = mysql_query("SELECT `timestamp` FROM job_times WHERE whatever...")
if(mysql_result($result, 2) >= ( now() - 3600)) {
runJobQueue()