cth*_*lhu 5 ruby-on-rails jruby paperclip
最近我改编我的rails应用程序在JRuby上运行.我遇到的一个问题是Paperclip.Paperclip使用Cocaine运行ImageMagick等命令行工具,并使用Process.spawn,结果如下:
Errno::ECHILD: No child processes - No child processes waitpid at org/jruby/RubyProcess.java:512 waitpid at org/jruby/RubyProcess.java:497 waitpid at /home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line/runners/process_runner.rb:21 call at /home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line/runners/process_runner.rb:9 execute at /home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line.rb:77 run at /home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line.rb:55 run at /home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/paperclip-3.2.0/lib/paperclip/helpers.rb:29
有没有办法让Paperclip与JRuby顺利合作?我只在linux上运行我的应用程序,所以我不介意使用像ImageMagick这样的Linux本机工具.
Rails 3.2.8,JRuby 1.6.7.2
在深入研究 Paperclip 和 Cocaine 代码后,我编写了一个初始化程序,它对 Cocaine 进行猴子修补,以便在 JRuby 上使用BackticksRunner
if RUBY_PLATFORM == 'java'
module Cocaine
class CommandLine
def best_runner
BackticksRunner.new
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
不过我仍在寻找更清洁的解决方案。
归档时间: |
|
查看次数: |
1209 次 |
最近记录: |