我有一个包含数万条记录的Rails应用程序,我会调查API以获取更新。我想知道在创建一个系统方面的最佳实践(更多涉及的不仅仅是一个cron工作)跟踪记录更新的频率......一些记录比其他记录更重要/更及时...所以对于常规维护,我希望每天两次更多重要的记录被轮询和更新,而非重要记录则每天更新一次。
所以假设这些记录有一些返回其“重要性”的方法......我应该创建一种维护_记录模型,belongs_to
每个记录并记录该记录的陈旧性(该记录的updated_at和它的重要性)?此记录还会记录最新尝试是否成功,并且可能在日志记录表中包含外键。
目的是让maintenance_record
能够非常快速地进行索引和排序,以便类似cron的作业可以扫描列表以查找要执行的作业,而不是点击records
数据库(可能包含大量blob等的记录,并且可能会增加数量级)。当然,我有不止一种类似记录的模型......所以具有多态maintenance_record
似乎是明智的。
无论如何,这是个好主意吗?这似乎是一个经常出现的场景,所以我想知道是否有任何库可以专门处理它,虽然我想创建一个简单的库并不是太难。
答案 0 :(得分:1)
通常,当我需要定期更新记录时,我会添加一个modified_at
时间戳字段,每次记录更改时都会更新。
然后,按照cron计划,我会查看表格,查看超过一定时间的记录,处理并更新该行及其modified_at
字段。
如果有优先级/重要性,请添加字段并为每条记录设置级别。如果1是顶部而2是下一个,则每个循环过程都使用priority == 1
字段。每个其他周期进程都记录priority <= 2
。
你应该如何处理这两个字段作为练习。