PHP脚本侦听目录

时间:2013-03-15 19:29:21

标签: php linux automation

我将PHP脚本配置为使用set_time_limit(0)for(;;)无休止地循环。脚本编码为侦听特定目录并等待文件。检测到文件时,执行一些命令并保持循环。到目前为止,这对我的需求非常成功,但我有顾虑。

在PHP中创建无限循环有任何性能缺点吗? 如何配置我的服务器以便此脚本永远不会停止运行?或者也许在我停止运行时提醒我?我也希望它能在创业公司推出。我有一个SUSE SLES 10盒子。

for (;;) {
    // Check for empty directory
    if (isEmptyDir($finishedDir)) {         
        // If so, move on
        continue;
    } else {
       // do stuff.
    }
}

2 个答案:

答案 0 :(得分:1)

这可能有用,但PHP实际上并不是为这类类似守护进程的工作而设计的。 Linux / Unix具有定制的工具,如inotify,可以保证更好的性能,并且可以在发生更改事件时触发PHP脚本。

请参阅此问题:Monitor Directory for Changes

答案 1 :(得分:0)

您可以考虑使用内存(例如:memcached,apc)而不是使用文件,因为访问文件比访问内存更昂贵。并考虑使用一点sleep()来增加时间间隔。