在文件上传完成时获取通知的最佳方式

时间:2011-12-21 07:54:16

标签: php operating-system notifications

我使用ffmpeg创建了一个视频转码器。用户通过FTP上传RAW视频 - 非常大,大约20GB。

目前,php脚本每隔5秒使用以下策略监控本地路径。

  1. 查找本地文件系统。
  2. 如果出现“新”文件,请将其添加到具有修改时间及其大小的数据库中。
  3. 5秒后,再次检查修改后的时间和大小,
    1. 未更改:将状态设置为[DONE],并将视频编码为“./output”目录。 ('输出'明确地从监控中排除)
    2. 更改:再等5秒钟。
  4. 它工作得很好,但它会烧掉一些cpu能力来找到'新文件'。有没有办法在文件上传完成后获得“准确时间”?

2 个答案:

答案 0 :(得分:1)

尝试制作一个检查新文件的perl守护进程,我认为它会减少资源消耗。 另外,另一个更像unix的替代方案,我认为整体更好: http://en.wikipedia.org/wiki/File_Alteration_Monitor

答案 1 :(得分:1)

如果可以的话,可以通过bash脚本安装inotify然后超级简单。否则bash脚本可能仍然更有效。

更新:php支持inotify:php.net/manual/en/book.inotify.php