【问题标题】:delayed_job gem - NotImplementedError: fork is not available on this platformdelay_job gem - NotImplementedError: fork 在这个平台上不可用
【发布时间】:2014-01-29 17:23:16
【问题描述】:

我正在为我的 rails 2.3.17 应用程序使用 jruby(1.7.3 或 1.7.9)、delayed_job (1.8.4)、守护进程 (1.1.9) gem。

我正在尝试使用以下命令启动延迟的作业服务器: 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 开始

这已解决“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”。

谢谢。

【问题讨论】:

    标签: fork jruby delayed-job


    【解决方案1】:

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

    【讨论】:

    • 谢谢理查德。但是,如果我执行“jrake jobs:work”而不是“jruby script/delayed_job start”,它会启动delayed_job 进程并完美地运行我的后台作业或delayed_jobs 表中的条目。所以对于我的 jruby 应用程序可以使用“jrake jobs:work”而不是“jruby script/delayed_job start”,因为我想在我的 jruby on rails(2.3.17) 应用程序中使用delayed_job gem
    • 所以其他人使用 rake 代替了 delay_job 在 jruby 上工作,虽然我没有亲自 - 我自己找到了一个替代解决方案......这是一个相关的所以 q:stackoverflow.com/questions/17676154/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 2019-06-29
    • 2015-09-02
    相关资源
    最近更新 更多