当文件上传正在完成时获取通知的最佳方式
问题描述:
我使用ffmpeg创建了一个视频代码转换器。用户通过FTP上传RAW视频 - 非常大,大约20GB。当文件上传正在完成时获取通知的最佳方式
目前,一个php脚本每5秒钟用下面的策略监视本地路径。
- 查找本地文件系统。
- 如果出现'新'文件,请将其添加到修改时间和大小的数据库。
- 5秒钟后,检查修改的时间和再次大小,
- 没有改变:将状态设置为[DONE],和编码所述视频入“./output”目录。 ('输出'明确排除在监控之外)
- 更改:再等5秒钟。
它非常好,但它烧掉了一部分CPU供电找到“新文件”。文件上传完成后,有什么方法可以获得“准确的时间点”?
答
,如果你可以通过一个bash脚本安装的inotify那么它的超级容易。否则bash脚本可能仍然更有效率。
更新:php.net/manual/en/book.inotify.php
答
尝试制作一个用于检查新文件的perl守护程序,我认为这会占用更少的资源。 此外,另一个更类似Unix的替代方案,我认为更好的整体: http://en.wikipedia.org/wiki/File_Alteration_Monitor
+0
感谢您的帮助! – lqez 2011-12-21 10:00:54
@Iqez什么是你的操作系统和它在PHP做:PHP和支持inotify的?另外,当你说“将视频编码到'./输出'目录”时,你的意思是将它复制到输出目录吗? – Abbas 2011-12-21 08:00:15
如果可以的话,安装inotify,然后通过bash脚本超级简单。否则bash脚本可能仍然更有效率。 – 2011-12-21 08:05:37
@Abbas它运行在Linux上,我想用PHP或python。 'encode'表示视频是由ffmpeg编码的,其结果将被存储到'./output'目录中 - 不再被编码。 – lqez 2011-12-21 08:06:09