PHP:运行计划作业(cron 作业)

2022-08-30 10:53:07

我在我的网站上有一个网站,我想运行一些计划任务。您会推荐哪些实现此目的的方法?

到目前为止,我想到的是在每个页面的顶部包含一个脚本,然后让这个脚本检查是否该运行此作业。

这只是我所思考的一个简单示例:

if ($alreadyDone == 0 && time() > $timeToRunMaintainance) {
   runTask();
   $timeToRunMaintainance = time() + $interval;
} 

还有什么我应该考虑的,还是有比这更好的方法?


答案 1

这就是cronjobs的制作目的。 假设您正在运行 Linux 服务器。如果您没有 shell 访问权限或无法设置 cronjobs,则可以使用免费服务在外部服务器上设置 cronjobs 并 ping 其中一个 URL。man crontab


答案 2

我现在正在回答这个问题,因为似乎没有人提到这个确切的解决方案。

在我目前正在处理的一个网站上,我们已经使用cPanel设置了一个cron作业,但是我们没有直接运行PHP解释器(因为我们使用的是CodeIgniter,我们的代码映射到控制器函数,这可能不是一个好主意)。我们正在使用。wget

wget -q -O cron_job.log http://somehost/controller/method

-q是为了使wget不会生成任何输出(因此您不会继续收到电子邮件)。 会将控制器生成的任何内容的内容保存到日志文件中(每次都会覆盖,因此它不会继续增长)。-O cron_job.log

我发现这是让“正确”的cron工作的最简单方法。


推荐