2011-06-24 99 views
2

我目前使用Resque處理我的應用程序中的後臺作業。現在我有5個不同的隊列(它會增長得非常快)。他們每個人都在做着像更新Solr索引,實時通知,計劃通訊,延遲電子郵件& SMS。目前我正在使用Resque作爲rails gem並從rails環境運行Resque。管理多個服務器上的不同resque隊列

現在我打算將Solr索引更新任務和計劃的新聞組移動到不同的服務器上,因爲這兩個執行繁重的操作。一種方法是將rails目錄複製到新服務器,並從rails環境運行Resque作業。但我做這件事並不舒服。

另一個是爲resque任務創建一個獨立的rake應用程序。但問題是,這些任務都嚴重依賴於軌道模型和軌道模板。我完全不確定如何繼續下一步。

有沒有人遇到類似的問題,以及您如何構建應用程序?

回答

6

我們使用rubber來配置我們的服務器並進行部署。它是Capistrano基於角色部署的插件。其中一個角色是「resque_worker」,任何具有該角色的機器都將啓動resque-pool以開始處理工作。

但你可以做得更簡單。只需將您的應用程序部署到兩臺不同的機器。 Resque旨在允許不同機器上的工作人員。只要你的第二臺機器可以訪問你的Redis服務器,一切都可以正常工作。