我有一个 JRuby/Rails 应用程序,它部署为 WAR 文件并在 Tomcat 应用程序服务器中运行。我想使用delayed_job 或Resque 作为一种工具来执行长时间运行的作业,这些作业通过我的Rails 应用程序使用的相同ActiveRecord 子类来遍历数据库。而且我希望它在不同的进程或线程中运行,以免使我面向 Web 的应用程序看起来很慢。
包含和使用delayed_job 或Resque 的说明非常清楚。例如,一旦我完成了所有使用 Resque 的游戏,我只需要做:
QUEUE=* jruby -J-cp /path/to/library -S rake environment resque:work
但这仅适用于命令行。如何通过将 WAR 文件部署到 Tomcat 来运行我的 Resque 进程?如果是这样,它是具有不同配置的同一个 WAR 文件还是不同的 WAR 文件?如果它是一个不同的 WAR 文件,我如何生成它?Resque/DJ 过程是否需要第二个 Tomcat?有没有办法将 Resque/DJ 进程放入它自己的 JRuby/JVM 线程中?有没有我必须做的任何配置 jiggery-pokery 才能做到这一点?