cron的PHP“替代”,将其保存为主机上的脚本并执行一次。它会每秒调用一次,如果内部处理需要更长时间,它也需要更长的时间,所以在后台分叉你的任务,这样它们就不会阻止脚本执行太长时间:
header("X-PHP-CRON-STATUS: failure.");
isset($_SERVER["HTTPS"]) || die('failure.');
ignore_user_abort(true);
set_time_limit(0);
header("Content-Length: 8");
header("Connection: close");
header("X-PHP-CRON-STATUS: started.", 1);
echo 'started.';
flush();
/* run cron jobs in background / HTTP "background" script like this one */
$each = 1; /* second(s) */
$sofar = microtime(1) - $_SERVER['REQUEST_TIME'];
if (0 < ($wait = $each - $sofar))
{
usleep($wait * 1000000);
}
$uri = 'http' . ($_SERVER["HTTPS"] ? 's' : '') . '://' . $_SERVER["SERVER_NAME"];
!$_SERVER["SERVER_PORT"] == "80" && $uri .= ':'.$_SERVER["SERVER_PORT"];
$uri .= $_SERVER["REQUEST_URI"];
file_get_contents($uri);像这样的脚本非常脆弱,所以最好得到一个真正的cron,这是值得的。对于修修补补,没关系。