【问题标题】:Is there a delayed_job like gem for jruby?jruby 有没有像 gem 一样的延迟工作?
【发布时间】:2011-03-18 18:00:54
【问题描述】:

我正在尝试将 Rails 应用程序转换为 jruby on rails。目前,jruby script/delayed_job run 给出:

/usr/lib/jruby/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:50:in `each_object': ObjectSpace is disabled; each_object will only work with Class, pass -X+O to enable (RuntimeError)
    from /usr/lib/jruby/lib/ruby/gems/1.8/gems/delayed_job-2.0.3/lib/delayed/command.rb:50:in `daemonize'
    from script/delayed_job:5

jruby 有没有像delayed_job 这样的gem?

【问题讨论】:

    标签: jruby delayed-job jrubyonrails


    【解决方案1】:

    作为记录,当部署到 Servlet 容器时,可以使用 https://github.com/kares/jruby-rack-worker 在单独的本机(守护程序)线程中运行 Delayed::Job 作为 JRuby::Rack 应用程序的一部分...

    【讨论】:

      【解决方案2】:

      我不知道delayed_job 使用了ObjectSpace。
      Jruby 默认禁用它,我不知道性能影响
      使用 -x+O 启用它。
      如果您需要处理简单且少量的作业,您应该考虑 BackgrounDRB。
      如果您需要扩展某些东西,您应该查看 Workling/Starling。

      【讨论】:

        【解决方案3】:

        我遇到了完全相同的问题。最后我决定改用 Resque,我最初拒绝了,因为我认为它会矫枉过正。您还需要安装另一个移动部件,Redis...

        但是,最终证明它很容易设置并且非常灵活。我现在真的很高兴我试了一下。

        【讨论】:

        • 您是在 Windows 上还是在 linux 或 mac 上使用 Resque 和 JRuby?
        • @AlexBlakemore 相当标准:Mac 用于开发,Linux 用于生产。
        • 感谢您的回答,让我免于浪费时间尝试让 Resque 在 Windows Server 上工作。不幸的是,我们现在绑定到 Windows 服务器。
        猜你喜欢
        • 2022-08-02
        • 2015-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-10
        • 2014-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多