进行后台任务的最佳方式

时间:2013-05-14 15:08:46

标签: php

使用PHP,我希望根据服务器当前运行的时间来安排任务。

星期天晚上7点说我想要运行数据库查询。

我考虑过这样做的方法是将任务放在会话init中每个页面上运行的脚本中。

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

在指定的时间间隔自动运行PHP脚本的一种方法是使用Crontab。这对于需要在没有用户交互的情况下自动更新信息的脚本尤其有用,例如收集网站统计信息以便可以通过电子邮件发送给您的脚本或定期从其他网站检索内容的脚本。

请参阅:PHP CLI and Cron

答案 1 :(得分:0)

您可以使用cron为您触发脚本,如下所示:

如果您有ssh访问权限,可以添加如下的crontab条目:

crontab -e

并输入以下内容:

0 19 * * 0 php -f /path/to/script/file.php

其中19是小时(晚上7点),一周的第0天(星期日),0是分钟。

这将在星期天晚上7点开始。

答案 2 :(得分:0)

这是您cron标签的用途。您可以指定在运行它们的任何时间运行所需的任何任务,脚本或其他程序。 Cron由您的操作系统运行,并按操作系统的时钟运行。

例如,如果我想每分钟运行一个PHP脚本,我会在我的cron选项卡中添加如下内容。

* * * * * php /path/to/script.php

您实际创建cron条目的方式取决于您的服务器设置。如果您在Unix / Linux系统上有某种shell访问权限,则可以通过运行以下命令轻松编辑cron选项卡。

crontab -e

这将在默认文本编辑器中显示crontab。

如果您使用的是cPanel之类的内容,则必须参阅手册以获取有关如何edit cron entries的信息。

首先,cron的实际语法可能很复杂。如果您需要帮助,可以在线使用entry generators

0 * * * * php /some/script.php # This will execute at the 0 minute of every hour.
0 1 * * * php /some/script.php # This will execute at the 0 minute of the first hour of every day.  In other words, every day at 1AM.

答案 3 :(得分:0)

您应该使用您的系统Cron deamon来安排和运行PHP文件。

首先阅读Cron: https://help.ubuntu.com/community/CronHowto

然后执行:

打开crontab:

vim crontab -e

在您的cron表中添加一个条目:

0 19 * * 0 /path/to/php /path/to/script.php

您的script.php将包含查询数据库的代码/逻辑。