如何使用php等待文件存在?

时间:2011-09-13 16:20:57

标签: php file filesystems

我正在使用异步Web服务向我发回一个Job ID。然后,Web服务将完整响应作为XML文件(jobId.xml)使用PUT请求发送到我的服务器。


  

在向webservice发出请求并获取jobID之后,我   想知道什么是最好(最有效)的等待方式   直到文件被创建到我的服务器的PUT目录中?


我正在考虑一个file_exist()的循环,每次执行和超时之间都有一个usleep()。

但我确信有更好的方法。 像听众一样......

该文件可能需要不到一秒钟到达超过1分钟。

谢谢!

2 个答案:

答案 0 :(得分:1)

  1. 您可以使用inotify来查看某个目录中的文件创建。

  2. 或者,您可以修改PUT处理程序以通知您的脚本。例如,您可以创建一个命名管道,从中读取(阻塞),并修改您的PUT处理程序以在管道上写入文件

答案 1 :(得分:1)

我不明白你是否需要php进程保持活动状态(不返回和死亡)。

如果没有,请考虑使用incrontab 它就像一个cronjob,但它不是在预先配置的时间运行,而是根据文件更改运行。您可以将其配置为侦听目录,当文件系统上的文件完成创建时,incronjob将触发您想要的程序。

这是unix / linux操作系统的解决方案。你没有提到你的操作系统。