0

我有一个 Rails 应用程序,其中包含数万条记录,我轮询 API 以获取更新。我想知道在创建一个跟踪记录应该多久更新一次的系统(不仅仅是一个 cron 作业)方面的最佳实践是什么......有些记录比其他记录更重要/更及时......所以对于常规维护,我希望每天两次轮询和更新更重要的记录,而不是每天一次用于非重要记录。

所以假设这些记录有一些方法可以返回它们的“重要性”......我是否应该创建一种维护记录模型,belongs_to每个记录并跟踪该记录的陈旧性(该记录的 updated_at 及其重要性的组合)?该记录还将记录最近一次尝试是否成功,并且可能在日志记录表中具有外键。

目的是要有maintenance_record一些可以快速索引和排序的东西,这样类似 cron 的作业可以扫描列表以查找要执行的作业,而不是访问records数据库(其中可能包含带有大量 blob 的记录等,并且可能数量级增长)。当然,我有不止一种类似记录的模型......所以拥有多态maintenance_record似乎是明智的。

无论如何,这是个好主意吗?这似乎是一个经常出现的场景,所以我想知道是否有任何库可以专门处理它,尽管我想创建一个简单的库并不太难。

4

1 回答 1

1

通常,当我需要定期更新记录时,我会添加一个modified_at时间戳字段,该字段会在每次记录更改时更新。

然后,在 cron 计划中,我查看表中超过特定​​时间的记录,处理和更新行及其modified_at字段。

如果有优先级/重要性,请添加一个字段并为每条记录设置一个级别。如果 1 是顶部,2 是下一个较低的值,则每个循环过程字段都带有priority == 1。每隔一个循环过程记录priority <= 2

您应该如何处理这两个字段留给您练习。

于 2013-07-24T05:23:19.710 回答