如何在没有用户交互的服务器上定期运行/刷新PHP计数器脚本(如果可能的话)


How to periodically run/refresh a PHP counter script on a server with no user interaction (if possible)

我编写了一个PHP脚本,它从IceCast流中收集所有数据并将其存储在一个数组中。我想测量一下每五分钟有多少听众。有没有一种方法可以远程运行脚本,使其每五分钟"刷新"一次,并将侦听器的数量粘贴到数据库中?谢谢

Cron作业就是您想要的。你可以在SO/谷歌等网站上搜索。了解如何创建/设置Cron作业。

我使用了以下片段来定期运行脚本
它的主要优点是在$min minutes(可配置)完成当前进程后运行。使用每X次运行一次的cron无法实现这一点。看到区别了吗?通过这种方式,您可以确保在进程之间等待给定的时间

也许这不是你想要的,但我想分享一下这个有用的技巧。

script_at.php文件:

function init_at()
{
    // my code
    runNextPlease();
}
function runNextPlease()
{
    $min = 5;
    exec ("at now + $min minutes -f " . PATH_TO_SOURCE . "script_at.sh", $output, $out);
    my_logger("at return status: $out");
}

script_at.sh文件:

#!/bin/bash
/usr/bin/wget -c -t0 -o /dev/null -O /dev/null http://domain/script_at.php