我想在每次更新记录时运行cron rake任务 - 即在创建/更新新记录后的某个时间,cron rake任务将对记录执行一些处理并保存结果。
但是,此任务是处理器密集型的,只有在用户更新记录时才运行它。
以编程方式确定rake任务是否已处理特定记录(并且用户根本没有更改过)的最佳方式是什么?
我正在考虑为每条记录生成一个哈希并使用它来查看它是否已更改。 必须有更有效的方法来执行此操作。
感谢您的帮助, 亚历
答案 0 :(得分:2)
我认为你应该使用DelayedJob而不是Cron / Whenever。
无论如何,你不认为在验证或保存过滤器之前/之后做它会更好吗?如果您将此功能实现为before_save过滤器,那么您可以使用脏属性。有关您可以在此处找到的脏属性的更多信息:http://ryandaigle.com/articles/2008/3/31/what-s-new-in-edge-rails-dirty-objects