php - 后台处理视频上传,有什么精通PHP的方法?

标签 php process background ffmpeg

我正在开发一个视频上传网站,我遇到了一个难题:上传的视频需要转换成 FLV 格式才能显示给访问者,但是,如果我在脚本中执行命令,脚本将在 FFMPEG 转换视频时挂起大约 10-15 分钟。

我想在数据库中插入一条记录,指示需要处理的文件,然后使用设置为每 5 分钟一次的 cron 作业从数据库中选择需要处理的记录,处理它们,然后更新显示它们已被处理的数据库。我担心的是执行了太多进程,服务器在压力下崩溃了,所以有没有人对此有任何解决方案或改进我想到的进程的方法?


好的,这就是我现在的想法,所以用户上传了一个视频,并且在数据库中插入了一行,指示视频需要处理。设置为每 5 分钟一次的 cron 作业检查需要处理的内容和正在处理的内容,假设我一次最多进行五个进程,因此脚本将检查是否需要处理任何视频以及有多少视频正在处理,如果小于 5,它会更新记录表明它正在处理,一旦视频被处理,它会更新记录表明它已经被处理并且 cron 作业再次开始,有什么想法吗?

最佳答案

Gearman是解决此类问题的好方法,它可以让您立即 dispatch 工作并让任意数量的工作人员(可能位于不同的服务器上)来完成它。

开始时,您可以在同一台服务器上运行几个 worker,但如果您开始遇到负载问题,那么您可以启动另一台服务器并配备更多 worker,因此它是水平可扩展的。

关于php - 后台处理视频上传,有什么精通PHP的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7054457/

相关文章:

node.js - 在 Node.js 中运行异步进程

linux - gdb coredump - 调用函数或继续执行

android - 如何跨 Activity 更改背景颜色

php - 注销后销毁 session 文件

php - 正则表达式仅在 { } 内替换

php - 未捕获的 PHP 异常 RedisException : "Cannot assign requested address"

linux - x86 上的任务管理

linux - 无法从另一个 bash 脚本在后台执行 bash 脚本

asp.net - CSS 和 ASP.NET 控件

php - 具有彩色搜索词的搜索引擎