0

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

假设在周日晚上 7 点,我想要运行数据库查询。

我考虑这样做的方式是将任务放在会话初始化中每个页面加载时运行的脚本中。

有任何想法吗?

4

4 回答 4

3

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

请参阅:PHP CLI 和 Cron

于 2013-05-14T15:12:14.083 回答
0

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

如果你有 ssh 访问权限,你可以像这样添加一个 crontab 条目:

crontab -e

并输入如下内容:

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

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

这将在周日晚上 7 点运行。

于 2013-05-14T15:15:20.963 回答
0

这就是您的cron选项卡的用途。您可以指定需要在任何时间运行它们的任何任务、脚本或其他程序。Cron 由您的操作系统运行并按操作系统的时钟运行。

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

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

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

crontab -e

这将在默认文本编辑器中打开 crontab。

如果您使用的是 cPanel 之类的东西,则必须查阅手册以获取有关如何编辑 cron 条目的信息。

cron 的实际语法起初可能很复杂。如果需要帮助,可以使用在线条目生成器。

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.
于 2013-05-14T15:15:22.417 回答
0

您应该使用您的系统 Cron 守护程序来安排和运行 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 将包含查询数据库的代码/逻辑。

于 2013-05-14T15:18:29.797 回答