delayed_job gem - NotImplementedError:此平台上没有fork

时间:2014-01-29 09:18:39

标签: fork jruby delayed-job

我正在使用jruby(1.7.3或1.7.9),delayed_job(1.8.4),守护进程(1.1.9)宝石用于我的rails 2.3.17应用程序。

我正在尝试使用命令启动延迟的作业服务器: 1. jruby script / delayed_job start

错误:

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 script / delayed_job start
  2. 这已解决“ObjectSpace已禁用”错误,但我在本地遇到以下错误。 错误:

    NotImplementedError: fork is not available on this platform
                  fork at org/jruby/RubyKernel.java:1880
              safefork at /home/user/.rvm/gems/ext-jruby-1.7.9@jruby179-rails2317/gems/daemons-1.1.9/lib/daemons/daemonize.rb:11
        call_as_daemon at /home/user/.rvm/gems/ext-jruby-1.7.9@jruby179-rails2317/gems/daemons-1.1.9/lib/daemons/daemonize.rb:43
            start_proc at /home/user/.rvm/gems/ext-jruby-1.7.9@jruby179-rails2317/gems/daemons-1.1.9/lib/daemons/application.rb:259
                 start at /home/user/.rvm/gems/ext-jruby-1.7.9@jruby179-rails2317/gems/daemons-1.1.9/lib/daemons/application.rb:296
                   run at /home/user/.rvm/gems/ext-jruby-1.7.9@jruby179-rails2317/gems/daemons-1.1.9/lib/daemons/controller.rb:70
              run_proc at /home/user/.rvm/gems/ext-jruby-1.7.9@jruby179-rails2317/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/ext-jruby-1.7.9@jruby179-rails2317/gems/daemons-1.1.9/lib/daemons/cmdline.rb:109
              run_proc at /home/user/.rvm/gems/ext-jruby-1.7.9@jruby179-rails2317/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”。

    感谢。

1 个答案:

答案 0 :(得分:0)

你不能在jruby上使用delayed_job,因为它依赖于在jruby中没有的Fork。