在Ruby on Rails中创建一个提醒函数

如何在Ruby on Rails中创建提醒类型function? 我想要的基本上是一个无限的线程,定期调用数据库函数(每1分钟)。 好像大多数gem(上帝,每当等……)都依赖于召唤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为例,请看一下。