将文件发送给齿轮工人

时间:2012-07-25 08:01:19

标签: php gearman

我目前正在将网页的视频转换部分(有点像用户上传视频的youtube,我们将其转换为flv / mp4)分离到其他服务器。我已经在同一台机器上运行了gearman的系统。因此,当用户将视频文件上传到服务器A时,将被同一服务器A上的齿轮工人挑选。

现在我将工作人员移动到服务器B.因此服务器B上的工作人员需要访问服务器A上的上传文件。目前我使用SCP将文件从A复制到B然后处理它。这种方法有效,但我觉得应该有一个更干净的方法,但我没有找到任何有关向齿轮工人发送文件(或大文件)的信息。你会如何处理这个问题?

优选地,客户端将视频文件作为命令的一部分发送以启动后台作业,因此我不必担心文件实际来自工作者的位置。这样我就可以添加更多转换服务器而不会有太多麻烦。

我正在使用PHP(使用Gearman extension)来访问我的网页和工作人员。

1 个答案:

答案 0 :(得分:5)

正如评论中所建议的那样,拥有共享FS是实现这一目标的(通常)方式,并且只是在来自gearman的作业请求中传递路径。 Gearman不适合传递大量数据,因为它必须将所有信息保存在内存中。它从未设计用于处理大文件的传输和分发。由于MogileFS最初也是在Danga开发的,因此根本不需要在Gearman中整合文件传输和处理(这是一件好事,有很多技术可以比Gearman更好地解决这个问题)。

我们使用NFS在视频到达时处理分布式工作人员,并且编码器将编码后的视频放回到公共可用的NFS共享上。还没有一个严重的问题,NFS是稳定的,它的问题是众所周知的,已经解决了你将看到的那种负载。