1
我有一個在Heroku中託管的Rails 3.0應用程序。我想建立一個不同的Rails的服務器來運行重後端作業(掃描用戶配置文件,項目和創建的建議,並將它們存儲在Redis的數據庫),使其:在Heroku上爲Rails應用程序設置後端服務器
- 不會堵塞我的前末端服務器(即,如果我同一個前端Rails的服務器上運行的後端進程,這將需要更長的時間來響應用戶的請求等)
- 讓我有Rails的類和方法
我的理解是:
- 添加更多工人代理將不會分離前端和後端進程
- 添加When或Delayed_Job gems將不允許我在單獨的後端服務器上運行。
我認爲這種情況應該定期爲Rails出現。我應該怎麼做呢?
非常感謝。
非常感謝!其實我的意思是「堵塞我的前端服務器」。我的意思是:如果我需要在相同的Rails前端服務器上運行大量的工作,比如索引,匹配對象,它會減慢我的前端服務器。這就是爲什麼我想建立一個獨立的後端服務器的原因。在這裏添加一個worker dynos將無濟於事,因爲如果計劃的索引作業運行,它可能會佔用所有的dynos。現在,對於我的後端服務器,我想要訪問所有的Rails功能(即,我應該能夠從ActiveRecord等繼承) – AdamNYC 2012-04-15 22:18:23
工作人員在單獨的進程中運行dynos - 因此它們不會影響前端。然而,你必須考慮你的數據庫,就好像這兩個應用程序共享那麼這可能是你的瓶頸。 – 2012-04-16 08:21:11
你不瞭解Heroku的工作方式。單個進程不會運行多個dynos。無論上下文還是任務,dyno都會運行應用程序的單個實例。處理HTTP請求是像Sinatra和Rails這樣的框架處理的一項任務,但您也可以在通過'heroku run ...'觸發的單獨的dynos中運行一次性Ruby腳本。 Heroku沒有服務器的概念 - 他們甚至不用硬件,因爲他們自己在AWS上運行。 – coreyward 2012-04-16 20:54:10