Using ffmpeg, PHP and beanstalk



我是ffmpeg和beanstalk的新手,我需要一点帮助。我想使用beanstalk对文件进行排队,以便ffmpeg进行转换。我已经下载,安装并启动beanstald(也安装libevent,因为它建议),我已经下载了beanstald的PHP客户端;

http://sourceforge.net/projects/beanstalk/

现在下载客户端后,把它放在我的服务器上,我什么也没做,但使用客户端的例子,我得到这个错误;

致命错误: Maximum execution time of 30 seconds exceeded in/Users/wasimkhamlichi/Sites/viviation/beanstalk/src/beanstalk .class.php on line 1138

这是来自示例的代码;

$beanstalk = BeanStalk::open(array(
    'servers'       => array( '127.0.0.1:11300' ),
    'select'        => 'random peek'
));
// As in the protocol doc.
$beanstalk->use_tube('foo');
// As in the protocol doc.
$beanstalk->put(0, 0, 120, 'say hello world');      // Add a job to the queue with highest priority, 
                                                    // no delay, 120 seconds TTR, with the contents
                                                    // 'say hello world'.
                                                    // NOTE: the put() method here supports a final optional 
                                                    // argument, a tube name. If supplied, the server will
                                                    // first switch to that tube, write the job, then switch
                                                    // back to the old tube again.
// As in the protocol doc.
$job = $beanstalk->reserve();                       // Assuming there was nothing in the queue before 
                                                    // we started, this will give us our 'hello world'
                                                    // job back.
// This is a BeanQueueJob object.
echo $job->get();                                   // Output: 'say hello world'
Beanstalk::delete($job);                            // Delete the job.

非常简单的快速脚本只是说你好,但它超时了。有人能帮忙吗?

Beanstalk只是传递消息。你把一个东西放到队列的一个地方,然后把它从另一个地方取出来。

您可以将文件名放入名为'ffmpeg-convert'的管道中。从命令行运行的PHP脚本保留队列中的下一项,并执行所需操作,将完成的文件放在适当的位置。

如果您需要更多信息(例如,将完成的文件放在哪里,质量设置或新的输出文件名),您可以对信息进行编码-将信息数组转换为Json字符串(使用json_encode($array))是一个不错的选择。您将编码的字符串放入Beanstalk中,然后cli脚本对字符串进行解码,并执行相应的工作。

将worker作为基于命令行的脚本运行通常可以避免任何超时问题。不像网页请求,没有默认超时,也有更多关于内存使用的纬度

相关内容

  • 没有找到相关文章

最新更新