Web applications 创建服务器处理队列

Web applications 创建服务器处理队列,web-applications,Web Applications,我甚至不太确定该怎么问这个问题,因为这是一个总体概念问题,但我想我会尝试一下 我试图创建一个概念上类似于Vimeo等许多视频托管网站的流程。以Vimeo为例,用户将视频上传到主服务器,视频被添加到处理队列中,用户可以在视频处理过程中自由地做其他事情。稍后,用户收到一封电子邮件,表示处理已完成,现在可以访问视频,用户可以对其执行任何操作 我的问题是,这样的系统是如何工作的?我的经验主要是使用PHP,其中所有处理都直接绑定到该页面中的代码(或通过includes)。当用户离开页面时,您如何处理此类处

我甚至不太确定该怎么问这个问题,因为这是一个总体概念问题,但我想我会尝试一下

我试图创建一个概念上类似于Vimeo等许多视频托管网站的流程。以Vimeo为例,用户将视频上传到主服务器,视频被添加到处理队列中,用户可以在视频处理过程中自由地做其他事情。稍后,用户收到一封电子邮件,表示处理已完成,现在可以访问视频,用户可以对其执行任何操作

我的问题是,这样的系统是如何工作的?我的经验主要是使用PHP,其中所有处理都直接绑定到该页面中的代码(或通过includes)。当用户离开页面时,您如何处理此类处理

这是我的猜测。。。请纠正我。用户提交的页面通过某种API挂钩将其文件添加到处理软件队列中。处理器可能是用其他语言编写的,比如C或Java或其他任何语言,完成它的工作,然后在完成后,它向某个PHP页面发出调用,然后向用户发送电子邮件,并对视频执行任何需要执行的操作


我想我只是想了解一些大型网站的“黑匣子”是如何运作的,至少在概念上是这样。有人能帮我吗?很抱歉,这是一个如此大而模糊的问题。

您的问题的一个解决方案是启动一个新的流程fork,处理视频处理和向用户发送邮件,然后主流程照常继续。这将防止主进程停止,并迫使用户等待处理完成

您可以在此处阅读有关在php中创建流程分叉的内容:

还有一些应用程序可以处理视频处理,如ffmpeg:

不必使用新的编程语言,只需使用exec函数执行cli应用程序,如ffmpeg:


您需要找到一种方法来限制进程,以便服务器不会过载。可能需要一些功能来检查数据库中的活动进程,并等待表中的活动进程少于允许的活动进程

好极了。听起来正是我要找的。实际上,我已经看过ffmpeg和imagemagick,并且可能会最终使用这两种技术,因为我希望能够同时处理视频和静像。好了,该去看看流程分叉了。非常感谢!