需要不断运行的cron'type'方法

时间:2014-05-14 14:25:55

标签: php apache cron

我需要一个不错的方法来帮助在我的共享托管服务器上运行cron类型的脚本。现在 - 它必须保留一个共享主机帐户,所以这不会改变。我明白了一个" cron"可以这样做,并将间隔设置为每分钟。但我想看看我们是否能比它快一点。

我创建了一个基于Web的应用程序,它循环遍历这些目录中的目录和文件。找到新文件后,它会执行其他需要发生的事情。这一切都正常运作,那里不需要任何东西。正在处理的这些文件是紧急文件'。它们帮助本地部门和人员在处理这些文件时实际响应这些文件。所以'紧迫感'因素在这里很重要。

有了这样说,听到最常用的方法来执行这个脚本会很有意思(比如每30秒左右)没有:

  1. 让托管公司介入
  2. 吃掉太多资源(内存/查询等等。发生了最小的查询)
  3. 仍然允许定期完成此任务而不会出现问题。
  4. 作为旁注:我可以访问多个服务器上的多个帐户,我想到的一种方法是在这些帐户上创建单个文件以便运行,只需执行file_get_contents之类的操作(即使没有输出)所以它会执行脚本。再次 - "紧迫感"是这个应用程序中的一个重要因素,所以尽可能快地运行它是很重要的,但至少允许文件存档'和几个要运行的查询 - 在过程中没有相互超越(重复)

    如果有帮助,我也可以访问CLI(shell)。

1 个答案:

答案 0 :(得分:1)

一个超级简单的选项 - 让cron每分钟运行一次任务:

function task()
{
    doYourThing();
    sleep(30);
    doYourThing();
}

它并不理想 - 但它在技术上每30秒运行一次doYourThing()。

编辑:当人们上传新文件以按需运行任务时,为什么不“触发”某个事件?