我正在使用异步Web服务向我发回一个Job ID。然后,Web服务将完整响应作为XML文件(jobId.xml)使用PUT请求发送到我的服务器。
在向webservice发出请求并获取jobID之后,我 想知道什么是最好(最有效)的等待方式 直到文件被创建到我的服务器的PUT目录中?
我正在考虑一个file_exist()的循环,每次执行和超时之间都有一个usleep()。
但我确信有更好的方法。 像听众一样......
该文件可能需要不到一秒钟到达超过1分钟。
谢谢!
答案 0 :(得分:1)
您可以使用inotify
来查看某个目录中的文件创建。
或者,您可以修改PUT处理程序以通知您的脚本。例如,您可以创建一个命名管道,从中读取(阻塞),并修改您的PUT处理程序以在管道上写入文件
答案 1 :(得分:1)
我不明白你是否需要php进程保持活动状态(不返回和死亡)。
如果没有,请考虑使用incrontab 它就像一个cronjob,但它不是在预先配置的时间运行,而是根据文件更改运行。您可以将其配置为侦听目录,当文件系统上的文件完成创建时,incronjob将触发您想要的程序。
这是unix / linux操作系统的解决方案。你没有提到你的操作系统。