2

我有一个 PHP 页面,可以在数据库中读取和写入一些数据。有什么方法可以让我每隔 n 秒自动(而不是根据客户端的请求)在服务器上运行 PHP 页面?

4

3 回答 3

5

与其拥有 cronjob,不如拥有一个“守护进程”样式的脚本可能更容易/更有效。

一个始终运行的脚本,并且只是在设定的时间间隔内执行某些操作。

<?php
    while(true) {
        do_stuff();
        sleep(30);
    }

(更有效,因为脚本不需要在每次运行时都完全启动。它可以在调用 do_stuff 之间保存配置等。)

如何将进程作为后台运行并且永不死亡?

当然 'do_stuff()' 实际上可能只是在调用另一个脚本

function do_stuff() {
    file_get_contents('http://example.com/scripts/calc.php');
}
于 2013-05-18T18:53:22.377 回答
2

根据您的 Linux 风格,您需要设置一个 cronjob。

请参阅此处进行一些演练:http ://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

于 2013-05-18T18:22:15.957 回答
0

如果您的作业可以每 X 分钟运行一次,那么您应该注册一个 cron 作业(我假设您使用的是 linux 服务器)。打开控制台并输入:

$crontab -e

然后添加这一行:

*/10 * * * * php /home/yourdir/the-script.php

这将每 10 分钟调用一次脚本。如果您需要使用绝对文件路径,我不肯定,但这就是我所做的并且它有效:)

于 2015-08-21T12:27:35.227 回答