我在Rails上使用JRuby 1.5.6来构建自己的应用程序,它将定期离开并检索我订阅的任何RSS Podcast。jruby on rails调度选项
我选择JRuby的原因主要是因为我熟悉Java,希望利用Rails框架,最重要的是,当Ruby不符合我的要求时,我能够在Java中执行“繁重”任务。到目前为止(我还处于开发的早期阶段),这种混合方法一直非常成功。
我现在正处于需要将定期和长时间运行任务安排到后台进程的时间点。我的要求是拥有一个数据库支持的调度系统,理想情况下,这些系统是有据可查的,目前维护和清洁。
我现在的问题是,经过多天的研究,找到适合自己封装的解决方案,我似乎留下了很少的选择,因为我使用了JRuby。
一些我试过的宝石......
鲁弗斯调度
曾使用此之前,我很高兴与它的界面和文档,但还缺乏数据库持久性的,因此成为我的要求的破产者。
delayed_job的
我的理想解决方案将是delayed_job的。但是,由于ObjectSpace被关闭(我们可以通过重新启用来解决这个问题),但是由于仍然在维护和数据库支持的良好文档,在JRuby下会中断,但更严重的是,对守护进程的依赖gem抛出一个“fork是不安全的并且被禁用默认情况下在JRuby上“由于JRuby实现中的限制而出现错误。
在github上有一个不依赖于守护进程的fork,但是我不开心切换到主开发分支的一个fork,我仍然留下ObjectSpace问题,我不确定至于它的性能影响。
石英jruby的
虽然已经有各种石英基于宝石之前,this very recent offering是提供一种光滑的红宝石状接口的另一尝试。然而,有很少的文档,我不确定如果这可以数据库支持,我的直觉是它不是。
问题
虽然我只强调3个选项在这里,我知道有其他人可用。然而,我却找不到解决方案来打勾所有3个需求框(文档,维护,数据库支持)。
所以这个问题......
任何人都有过这种情况,并提出了一个解决方案?
有没有人设法让delayed_job以任何形式工作?
有没有更好的解决方案在那里,我忽略并满足我的需求?
**更新**我认为值得发布我决定使用JRuby的最终解决方案,现在在1.7.2。我目前的设置使用Sidekiq和发条。它已被证明是一个可靠的长期解决方案 – 2013-01-22 01:06:29