2014-01-29 41 views
0

我爲我的rails 2.3.17應用程序使用jruby(1.7.3或1.7.9),delayed_job(1.8.4),守護進程(1.1.9)gems 。delayed_job gem - NotImplementedError:fork在此平臺上不可用

我試圖使用命令啓動延遲作業服務器: 1. JRuby的腳本/ delayed_job的開始

錯誤:

RuntimeError: ObjectSpace is disabled; each_object will only work with Class, pass -X+O to enable 
    each_object at org/jruby/RubyObjectSpace.java:173 
    daemonize at /home/user/projects/new_central_repo/mml/mml_services/vendor/gems/delayed_job-1.8.4/lib/delayed/command.rb:39 
     (root) at script/delayed_job:5 
  1. 要解決這個錯誤,我通過「-X + O」的選項&運行以下命令: JRuby的-X + O腳本/ delayed_job的開始

氏s已經解決了「ObjectSpace is disabled」的錯誤,但是我在本地獲得了錯誤。 錯誤:

NotImplementedError: fork is not available on this platform 
       fork at org/jruby/RubyKernel.java:1880 
      safefork at /home/user/.rvm/gems/[email protected]/gems/daemons-1.1.9/lib/daemons/daemonize.rb:11 
    call_as_daemon at /home/user/.rvm/gems/[email protected]/gems/daemons-1.1.9/lib/daemons/daemonize.rb:43 
     start_proc at /home/user/.rvm/gems/[email protected]/gems/daemons-1.1.9/lib/daemons/application.rb:259 
      start at /home/user/.rvm/gems/[email protected]/gems/daemons-1.1.9/lib/daemons/application.rb:296 
       run at /home/user/.rvm/gems/[email protected]/gems/daemons-1.1.9/lib/daemons/controller.rb:70 
      run_proc at /home/user/.rvm/gems/[email protected]/gems/daemons-1.1.9/lib/daemons.rb:197 
       call at org/jruby/RubyProc.java:290 
       call at org/jruby/RubyProc.java:224 
    catch_exceptions at /home/user/.rvm/gems/[email protected]/gems/daemons-1.1.9/lib/daemons/cmdline.rb:109 
      run_proc at /home/user/.rvm/gems/[email protected]/gems/daemons-1.1.9/lib/daemons.rb:196 
     daemonize at /home/user/projects/new_central_repo/mml/mml_services/vendor/gems/delayed_job-1.8.4/lib/delayed/command.rb:45 
      times at org/jruby/RubyFixnum.java:280 
     daemonize at /home/user/projects/new_central_repo/mml/mml_services/vendor/gems/delayed_job-1.8.4/lib/delayed/command.rb:43 
      (root) at script/delayed_job:5 

任何人都可以幫我解決這個錯誤。

本地我能夠使用「jrake jobs:work」命令啓動服務器,但我不是使用「jrake jobs:work」而不是「jruby script/delayed_job start」。

謝謝。

回答

0

您不能在jruby上使用delayed_job,因爲它依賴於在jruby中不可用的Fork。

+0

謝謝理查德。 但是,如果我使用「jrake jobs:work」而不是「jruby script/delayed_job start」,它會啓動delayed_job過程,並且還會在delayed_jobs表中運行我的後臺作業或條目,並且非常好。 因此,對於我的jruby應用程序,可以使用「jrake jobs:work」而不是「jruby script/delayed_job start」,因爲我想在我的rails上使用delayed_job gem(2.3.17)應用程序 – Pratik

+0

所以其他人有使用耙子來取得delayed_job工作jruby雖然我沒有親自 - 我發現了一個替代解決方案我自己...這裏是一個相關的如此問:https://stackoverflow.com/questions/17676154/issue-with-script-delayed -Job啓動,commad –

相關問題