2015-07-21 63 views
0

我在想如何在rails中實現像cron這樣的功能。我應該如何在rails中實現「cron」功能?

例如,您有一個成員模型。每次新會員註冊時,我的系統都會發送短信歡迎消息。但是,如果此用戶之前已被迎接,請勿再次發送。因此,我希望每10分鐘查看一下成員表,並看看我應該向誰發送信息。

這只是一個例子,我意識到這是更容易實施,否則。不過,我想知道是否對於像任務這樣的cron任務,必須查看活動記錄

1)我應該在哪裏放置腳本? 2)是否直接通過活動記錄訪問數據庫是一種很好的做法? 3)我應該如何使用寶石?或者在這種情況下使用系統cron更容易實現?

謝謝!

+0

如何創建rake任務(即'rake greet_new_member')並使用cron每10分鐘運行一次該任務? – yihangho

+0

我同意@yihangho一個耙子任務會讓你快速地使用一個普通的cronjob –

回答

0

這被稱爲異步作業。 Resque和Sidekiq是這方面的流行解決方案。

或者您可以創建一個rake任務,並將其放入任何時間或直接發送給cron。當然,在Rake任務中使用ActiveRecord完全沒問題。

2

什麼時候是圍繞系統cron的一種「包裝」工具;沒有理由編寫自定義批處理來設置rails環境並啓動任務,因爲無論何時做這個工作。 它可以很好地與capistrano和mina搭配使用,它們都可以在部署期間更新crontab。

查看whenever documentation並在mina documentation有一個更清晰的想法。

乾杯!

相關問題