5

我正在尝试将 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这样的宝石?

4

3 回答 3

2

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

于 2012-10-31T17:40:16.363 回答
1

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

于 2010-07-21T00:58:49.503 回答
1

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

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

于 2010-08-30T01:49:05.857 回答