2012-05-30 36 views
0

我正在開發一個Rails3應用程序,該應用程序將在Heroku Cedar棧上運行,並需要不斷檢查某個哈希標籤下的新推文。我有邏輯來做到這一點,但我想在後臺運行此任務,以免干擾主要的應用程序性能。我還需要在數據庫中寫入任何新的推文,以便我需要訪問Active Record。我正在尋找什麼可能是實現這一目標的最佳方式的建議。在Rails3/Heroku Cedar部署中反覆運行後臺腳本

回答

1

我做了類似的事情,如果推文稍微過期,我們可以使用計劃程序來執行正在觀看標籤的耙子任務的10分鐘。如果我們覺得10分鐘過於頻繁,我們可以將執行的頻率更改爲每小時/每天。

+0

感謝您的回覆。我考慮使用調度器插件,但10分鐘的頻率不足以滿足我需要,顯然它不能保證。我決定使用rufus-scheduler gem,每10分鐘運行一次Model方法,但我擔心這可能會損害應用程序的性能。 –

+1

爲了防止它受到損害,您可能需要通過rake任務或通過工作進程(可能是時鐘進程)運行它,以便它運行在除web進程外的自己的進程中。另外,你可以派生主進程並在一個線程中運行。 –

+0

你能否指出我的一些示例代碼的方向,它將覆蓋分叉主程序? –

1

您可以使用Heroku scheduler定期執行Rake任務(或其他腳本)。

或者,如果您正在檢查Tweets以響應某個用戶操作或某些其他事件,則可以使用類似Delayed Job的任務隊列。

+0

感謝您的回覆。我已經實施了rufus-scheduler gem,這似乎與您的建議類似。 –