使用JRuby和MRI作为常见应用程序

时间:2013-01-31 14:10:45

标签: ruby-on-rails ruby rake jruby bundle

我需要将JRuby和MRI用于我的rails应用程序。

这是情景 -

我的应用使用处理大量线程的后台服务器。我有表演 在MRI上运行它的问题。后台服务器以rake任务和需求启动 使用Rails环境。

我正在使用Passenger作为Web服务器。由于JRuby对Passenger的支持是最近的, 我想继续使用MRI。

这是我想要的东西 -

这使用Ruby 1.9启动服务器:

sudo passenger start -p 80 -e production --user=deploy

并在同一个应用程序中运行后台服务器 -

jruby -S rake background_server:start_daemon RAILS_ENV=production

问题是,第二个命令jruby -S rake要求重新绑定应用程序。

我有什么方法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

不在同一个应用中。如果你想要这样的话,你需要在不同的红宝石下运行的独立应用程序。在SOA体系结构中,您将向后台服务器发送一条消息,以便它处理作业。

因此,在heroku中,您将为在MRI中运行的Web创建一个应用程序;然后,您将在JRuby中为后台进程创建一个应用程序。他们通过共享的Redis或共享数据库进行通信。

我会建议使用特立尼达或彪马并将其保留在JRuby中(而不是继续运行乘客);它将是一个更简单的架构。