簡體   English   中英

在Ruby on Rails中創建提醒功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM