我目前正在将当前使用 REE 的 Rails 应用程序移植到 JRuby,以便我可以提供易于安装的 JRuby 替代方案。
我已使用 Bundler 将应用程序捆绑到 WAR 文件中,目前我正在将其部署到 GlassFish。然而,这个应用程序有几个守护进程,如果它们可以成为 WAR 文件的一部分,并且可能由 Glassfish 监控(如果可能的话),那就太理想了。
我查看了 QuartzScheduler,虽然满足了我的一些需求,但我有一个守护进程,必须每 20 秒执行一次,因为它正在轮询数据库以查找任何要发送的延迟邮件。
如果有人能够提供有关如何在 JRuby/Java/Glassfish 环境中最好地设置守护进程的任何见解,我们将不胜感激! :)
守护 JRuby 进程的一种方法是使用 akuma 框架(在 *nix 上)或 其他。
我宁愿使用 cronjobs(调度)而不是守护进程,因为它们不太容易出错,守护进程可能会泄漏内存,可以在错误时停止等。检查jruby-quartz和quartz_scheduler
编辑
如果使用Torquebox,它可以提供服务和调度支持。