执行时间延迟


Time delayed execution

旧版本的代码(部分)如下所示:

$oMainsite->checktime(); // In the main program
public function checktime(){
    $timeset = $_SESSION['timeset'];
    if ($_SESSION['timeset'] == ''){
        $_SESSION['timeset'] = date('H:i', strtotime("+5   min"));
    } else { 
        $timeset = $_SESSION['timeset'];
    }
    $arr_tijd = getdate();
    $uren = $arr_tijd["hours"];
    if ($uren < 10){
        $uren = 0; $uren .= $arr_tijd["hours"];
    }
    $minuten .= $arr_tijd["minutes"];
    if ($minuten < 10){
        $minuten = 0; $minuten .= $arr_tijd["minutes"];
    }
    $tijd = $uren;
    $tijd .= ":";
    $tijd .= $minuten;
    if($timeset <= $tijd){
        generate_question();
    }
}

函数 generate question() 的一部分看起来像:

........
$timedelay = rand(3,10);  
$_SESSION['timeset'] = date('H:i', strtotime("+".$timedelay." min"));
.........
// Display question

在主程序中,函数 checktime() 仅在刷新页面时执行。但是,如果没有用户输入,则站点将保持空闲状态,这解决了checktime()和"Generate_question()"函数永远不会执行的事实。

有没有办法执行 Checktime() 即使站点处于空闲状态?还是我必须以不同的方式处理这个问题?

如果你把它写在论坛上,它会多么简单:-)

要使页面重新加载或刷新自身,我们必须在 head 标签中使用以下代码

<meta http-equiv="refresh" content="5" >

属性 http-equiv="refresh" 要求刷新页面。

属性 content="5" 设置刷新时间。

页面必须重新加载的时间是使用 content 属性设置的。假设您希望页面在 10 秒间隔后刷新,请将内容值设置为 10。

我们建议刷新时间 [重新加载间隔] 超过 5 秒。这是因为您必须考虑页面加载时间。

谢谢大家的贡献。

有没有办法执行 Checktime() 即使站点处于空闲状态?还是我必须以不同的方式处理这个问题?

是的,有众所周知的技术。评论中的迈克建议你使用 cron 作业。他应该将其作为答案发布,因为该链接比我的帖子信息量更大。

在 Linux/BSD cron 上是一个以预定义间隔运行的程序,您可以指定一个任务每年运行一次,每分钟运行一次,或者每 4 小时在星期四运行一次,等等......

在Windows系统上,您可能会将其作为计划任务进行控制,但我不是Windows服务器的专家。

大型机上,您要么知道自己在做什么,要么甚至不应该接触该系统。