在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为例,请看一下。