一个永远不会结束(使用usleep)作为cron作业替代品的脚本 - 好主意?

时间:2012-06-03 23:21:29

标签: php cron cron-task usleep

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

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

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

1 个答案:

答案 0 :(得分: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需要及时运行,这也可行。

此外,如果您有一个表或某种其他方式来确定是否需要运行任务,您可以在{{1}中包含cron.js文件之前检查是否需要运行cron。文件。

相关问题