PHP - 好的cronjob/crontab/cron教程或书籍

5
我正在寻找一份好的cronjob教程或书籍,以学习如何使用PHP创建一个cronjob。

在http://stackoverflow.com/search?q=cron+php没有找到任何内容吗? - Gordon
@Gordon,我决定提出自己的问题,因为我认为这就是SO的用途,每个问题都会得到不同的答案。 - HELP
1
@huf 那是一个误解.我们鼓励您使用搜索功能并在提问时考虑SO给您的问题。不鼓励发布重复的问题,因为这只会增加杂乱无序的内容。 - Gordon
@Gordon,也许你并不是在和我说话。 - HELP
@huf,请不要误解,我并不是在批评你。提出自己的问题是可以的,但是我认为你应该更加努力一些。到目前为止,还没有回答过任何一个问题是不能在其他已有的问题答案中找到的。如果这些答案都无法帮助你,你应该告诉我们更多关于你所寻找答案的信息。 - Gordon
显示剩余3条评论
6个回答

12

创建 Cronjob 的方法不是通过 PHP 进程或脚本。 Cron 是一种 Linux 程序,允许您按照固定时间间隔调用脚本。

您可以在 Linux 机器上以管理员用户身份输入以下命令来查看 crontab:

root@valugi:~# crontab -e

你会看到类似于

*/1 * * * * /usr/bin/php /var/www/somesite/public/cron.php

这意味着每分钟都会执行cron.php。

现在,您可能希望在不同的时间执行不同的脚本,并希望将此逻辑传递到PHP级别而不是Linux级别。如果是这种情况,您可能希望在最低时间分母(例如一分钟)调用您的cron脚本,并在cron.php中构建一些逻辑,以在不同的时间调用其他脚本。

例如,我使用一个Cronable接口:

interface Cronable {
    public function cron();
}

每个想要被cron.php调用的类都必须实现这个接口和cron()函数,它将指定调用的具体频率。cron.php将获取所有这些类,并将当前时间与该时间进行比较,决定是否执行调用。


实际上,程序是cron。crontab是它要运行的作业列表。 - Ignacio Vazquez-Abrams

2
我认为您不需要整本书来学习这个。
基本上,您只需像往常一样编写脚本(避免使用$_SERVER),然后在crontab中进行条目设置,如下所示:
* * * * * [/path/to/php/]php /path/to/your/script/script.php

2

1

你不会使用 PHP 创建一个计划任务。你需要使用 crontab(1) 来创建。


1

或者你可以直接打开CPANEL,找到CRONJOBS。在那里,你可以选择需要运行的PHP文件或脚本以及何时运行它,例如每小时一次、每天一次、每周日等。


1

正如其他人所说,cron不是你在PHP中调用的东西,这就解释了为什么你没有找到任何关于它的教程。

问题是:你究竟想做什么?你想定期运行一个PHP程序吗?如果是这样,那么是的,你需要cron,但它与PHP无关,所以只需查找有关如何格式化crontab文件的cron教程即可。

如果你想在PHP中配置你的cron设置(这是从你的问题中读出来的),那么你需要修改crontab文件。这是一个简单的文本文件,因此加载和保存它与任何其他文本文件一样容易。(你可能会遇到文件权限的问题,但这是你应该另外寻求帮助的事情)。

要修改crontab设置,您需要知道如何格式化crontab文件中的条目,因此同样我上面提到的cron特定教程将会很有用(即您搜索时不需要包含“PHP”)。然后编写一个能够以该格式保存数据的PHP程序。实际上,这不是很复杂的格式,因此如果您相当熟悉PHP,您应该能够弄清楚如何解析数据。(但请告诉我们如果您需要进一步的帮助)

希望这可以帮助您入门。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接