echoprint-codegen无限期地使用delayed_job运行

时间:2012-02-27 06:42:58

标签: ruby-on-rails paperclip delayed-job system-calls

我正在尝试在后台进程中运行echoprint-codegen,以便在音频文件上传到网络服务时对其进行分析。

通过对通过回形针上传的tmp文件的简单系统调用,存在所需的功能:

result = `echoprint-codegen #{path} 0 20` # works!

不幸的是,当延迟工人解雇一份新工作时,情况并非如此; echoprint-codegen进程似乎无限期挂起。

根据echoprint自述文件,我仔细检查了ffmpeg是否也在路径内(Paperclip.options [:command_path]指向正确的路径)。

我还尝试在echoprint-codegen调用中封装Paperclip.run()命令行,但这也会导致挂起过程。

任何指针?

1 个答案:

答案 0 :(得分:0)

通过将echoprint-codegen系统调用放在Ruby线程中,我获得了所需的功能:

thread = Thread.new { Thread.current[:result] = `echoprint-codegen #{path} 0 20` }
thread.join
result = thread[:result]