做功能自动不同时间PHP

时间:2014-06-23 23:11:10

标签: php

我正在尝试执行自动清理功能,不知何故,我的代码按照我希望的方式工作。

function autoclean() {
    $todo = array('fetchnews|15', 'sayhello|20');

    foreach ($todo as $do) {
        $do = explode('|', $do);
        $res = mysql_query("SELECT txt FROM x_other WHERE title='".$do[0]."'") or sqlalert(__FILE__, __LINE__);
        $row = mysql_fetch_array($res);

        if ($row[0] + $do[1] > time())
            return;
        mysql_query("UPDATE x_other SET txt=".time()." WHERE title='".$do[0]."'") or sqlalert(__FILE__, __LINE__);
        if (!mysql_affected_rows())
            return;
        $do[0]();
    }
}

这应该每15秒做一次fetxhnews(),每20秒做一次(或者)。 第一个完美地工作,但是当fetchnews()第二次运行(30秒)时,sayhello()运行。

编辑:我发现为什么它没有用。

function autoclean() {
    $todo = array('fetchnews|15', 'sayhello|20');

    foreach ($todo as $do) {
        $do = explode('|', $do);
        $res = mysql_query("SELECT txt FROM x_other WHERE title='".$do[0]."'") or sqlalert(__FILE__, __LINE__);
        $row = mysql_fetch_array($res);


        if ($row[0] + $do[1] < time()) {
            mysql_query("UPDATE x_other SET txt=".time()." WHERE title='".$do[0]."'") or sqlalert(__FILE__, __LINE__);
            $do[0]();
        }
    }
}

回归;杀了它。上面的代码现在有效。 或者它仍然是一个更好的解决方案?希望它尽可能快

0 个答案:

没有答案