[英]Create a reminder function in Ruby on Rails
如何在Ruby on Rails中創建提醒類型函數? 我想要的基本上是一個無限線程,該線程定期(每1分鍾)調用一次數據庫函數。 似乎大多數寶石(上帝,每時每刻等等)都依賴於調用cron作業。
cron作業是健壯且可擴展的最佳/唯一方法嗎? 在服務器后台運行線程有哪些弊端?
是像Node.js這樣的更好方法嗎? Javascript內置了非常好的setInterval函數,這似乎正是我所需要的。 對於分散的問題,很抱歉,僅查看選項即可。
謝謝
您不需要后台作業來進行提醒(只要可操作的數據集不大)。 您可以使用Rufus :: Scheduler在特定時間每/每/每運行一次特定的模型動作。
在Gemfile中
gem 'rufus-scheduler', :require => "rufus/scheduler"
在config / initializers / reminder_sheduler.rb中
scheduler = Rufus::Scheduler.start_new
scheduler.cron("0 5 * * *") do
Model.send_reminder_email
end
長時間運行的進程(尤其是在Ruby中)通常會占用大量內存,並且會成為故障點,需要進行監視等。Cron非常可靠,因此在crontab中設置一個條目並將其設置為一個很有意義定期過程。
就是說,有一些Ruby后台作業可以支持這一點。 以https://github.com/bvandenbos/resque-scheduler為例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.