我将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.
}
}
答案 0 :(得分:1)
这可能有用,但PHP实际上并不是为这类类似守护进程的工作而设计的。 Linux / Unix具有定制的工具,如inotify
,可以保证更好的性能,并且可以在发生更改事件时触发PHP脚本。
答案 1 :(得分:0)
您可以考虑使用内存(例如:memcached,apc)而不是使用文件,因为访问文件比访问内存更昂贵。并考虑使用一点sleep()
来增加时间间隔。