2013-01-31 59 views
0

我需要爲我的Rails應用程序同時使用JRuby和MRI。使用JRuby和MRI進行通用應用程序

這裏的情景 -

我的應用程序使用它處理了大量線程的後臺服務器。我在執行MRI時表現出 問題。後臺服務器以rake任務啓動,需要 才能使用Rails環境。

我使用Passenger作爲Web服務器。由於JRuby對Passenger的支持是相當新的,我想用磁共振成像技術去做 。

這裏的東西我想 -

它使用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

不在同一個應用程序。如果您希望發生這種情況,您需要單獨運行在不同rubies下的應用程序。在SOA架構中,您會向後臺服務器發送消息以處理作業。

因此,在heroku中,您將創建一個用於運行MRI的Web應用程序;那麼您將在JRuby中爲您的後臺進程創建一個應用程序。他們通過共享的Redis或共享數據庫進行通信。

我會建議使用特立尼達或彪馬,並保持它在JRuby所有(雖然(而不是保持跑步乘客);這將是一個更簡單的架構。

相關問題