2013-02-20 90 views
0

我有一個在ruby on rails 3.0.7中開發的書籤網站,並且每次都運行許多rake文件以獲取書籤的URL詳細信息並添加用戶信息。由於rake每次都在運行,我的服務器開始工作,其CPU利用率爲100%。我需要在另一臺服務器上運行我的rake文件,方法是將所有rake保存在數據庫中並放入隊列中。是否有可能從Rails的另一臺服務器運行rake任務

我在單獨的服務器中設置了一個cron來處理rake任務的隊列,並且我的文件被共享了。但是rake任務仍然從開發服務器運行。

是否有任何選項在其他服務器上運行rake文件?或者我如何在rails中設置動態cron作業?

請幫我

謝謝。

回答

0

看起來像一個背景工作的工作。有許多Ruby解決方案。

其基本思路是:你將任務提交給隊列(由/ /任何支持)。然後另一個進程(worker)從隊列中彈出任務並在後臺執行它們,而不會阻塞或影響您的應用程序。當然,你可以有多個工人,他們可以位於其他機器上。

以下是有關工作人員的集合:Background Job railscasts

我目前最喜歡的是Sidekiq。

相關問題