jruby在rails调度选项

前端之家收集整理的这篇文章主要介绍了jruby在rails调度选项前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用J Ruby 1.5.6在Rails上建立一个应用程序,它将定期消失并检索我已订阅的任何RSS播客.

我选择JRuby主要是因为我熟悉Java,希望利用Rails框架,最重要的是我可以在Ruby缺少我的要求的时候执行Java中的“繁重的”任务.到目前为止(我还处于发展的早期阶段),这种混合方式一直非常好.

现在我需要实现定期和长时间运行任务的调度到后台进程.我的要求是拥有数据库支持的调度系统,理想情况下,文档很好,目前维护和清理.

我现在的问题是,经过多天的研究,我们使用了自己的宝石打包解决方案,因为我使用JRuby,所以我看起来很少选择.

我尝试过的一些宝石

rufus调度程序

在使用它之前,我很高兴与它的界面和文档,但是缺乏数据库持久性,因此是我的要求的交易破坏.

delayed_job的

我的理想解决方案是delayed_job.然而,良好的文档,仍然被维护和数据库支持,但是由于ObjectSpace被关闭(我们可以通过重新启用来解决这个问题),在JRuby中断,而更致命地说,依赖于引导“fork”的守护进程gem是不安全的默认情况下JRuby“由于JRuby实现中的限制而导致错误.

在github上有一个不依赖守护进程的fork,但是我不喜欢在主开发分支上切换到一个fork,而且我仍然留下了ObjectSpace问题,我不确定它的性能影响.

石英的JRuby

虽然以前有各种石英的宝石,this very recent offering是另一个尝试提供一个光滑的红宝石般的界面.然而,最少的文档,我不确定如果这可以是数据库支持,我的直觉是,它不是.

问题

虽然我在这里只强调了3个选项,但我知道还有其他可用的选项.然而,我没有找到一个解决方案来勾选所有3个要求框(文档,维护,数据库支持).

所以问题是…

有没有人在这种情况下提出解决方案?

有没有人设法得到delayed_job以任何形式工作?

有没有更好的解决方案,我忽略了,将满足我的需要?

解决方法

我们在JRuby生产中一直在使用delayed_job(collectiveidea / v1.8.4)一年多.
我们还没有启用ObjectSpace,而且我们也不使用守护程序gem.

创建了一个简单的耙子任务

namespace :product do
    desc "Start Delayed Job Worker"
    task :dw => :environment do
      Delayed::Worker.new.start
    end
  end

并以操作系统依赖方式守护它.在linux上,

nohup jruby -S rake product:dw > $log_dir/delayed_job_console.log  2>&1 &
原文链接:https://www.f2er.com/ruby/272996.html

猜你在找的Ruby相关文章