0

我正在开发一个开源应用程序,该应用程序将分发给不同主机上的用户。无论出于何种原因,其中一些主机都会禁用 cron 作业。

现在就个人而言,我认为拥有一个永远不会usleep(X)在循环中使用的脚本,作为 cron 的替代方案是一个愚蠢的想法,仅仅是因为所有关于usleep()占用 CPU 的讨论。但是,这是我不完全确定的事情。

可以使用这样的东西作为 cron 作业的替代品吗?如果没有,我还应该去哪里看?

4

1 回答 1

1

我不太确定使用 PHP 的 usleep 创建一个虚假的 cron 作业是一个多么好的想法(从阅读 usleep 的 PHP 页面来看,评论确实听起来好像它在睡眠时不会占用 CPU) . 但是,还有另一种方法。

这个 cron 工作需要多及时?您可以做的是将以下内容添加到网页的<head>.

<script type="text/javascript" src="cron.js" defer="defer"></script>

cron.js 看起来像:

(new Image()).src = 'cron.php?' + (new Date).getTime();

一旦页面完成加载,这将加载一个图像(图像是 cron.php,我添加了 getTime 以防止缓存)。cron.php 文件将执行任何需要完成的任务,如果有的话。然后它会输出一个图像(可能是一个空的、透明的像素)。

如果网站获得足够的点击量,即使需要按时运行 cron,这也可能是可行的。

此外,如果您有一个表或其他确定是否需要运行任务的方法,您可以在将 cron.js 文件包含在文档中之前检查是否需要运行 cron <head>

于 2012-06-03T23:44:10.787 回答