我需要每10分钟使用ruby脚本的结果更新一个数据库表。 ruby脚本输出是一个哈希。所以我需要导航我的哈希结果并将其放在我的数据库的表中。我想在我的rails应用程序中执行此操作,就像预定的后台作业一样。
这样做的最佳实践是什么?
答案 0 :(得分:0)
您最好将Redis + Resque用于此
Redis是key/value pair
db storage(基本上是Rails应用程序的RAM),而Resque是一个排队系统,它运行任务来循环遍历redis值。 This RailsCast会为您提供一个很好的概述:
答案 1 :(得分:0)
您可以试试job scheduler for Ruby。
答案 2 :(得分:0)
Custom rake task是为Rails设计的。它不要求您在项目中包含新内容。这不是关于安排的。它只是关于实现在应用程序前端处理模型层的代码。
对于调度,有许多解决方案从system cron开始。但你的问题似乎不是关于调度而是关于代码的去向。
对于Resque和其他排队系统,当您从用户请求启动后台任务并需要使其异步时,需要它们。现在看来不是你的情况。
答案 3 :(得分:0)
如果您正在使用基于Unix的系统,最好的工具IMHO是whenever gem:
every 10.minutes do
runner "DbUpdater.update_db"
end