【问题标题】:What's the best pattern for logging data on a Stateful Object?在有状态对象上记录数据的最佳模式是什么?
【发布时间】:2015-09-08 17:43:51
【问题描述】:

目前我正在考虑添加一个 json 数组列(我正在使用 postgres)并将对象的日志消息泵入此属性。我想记录进度(该对象是一个导入报告,它做了很多事情并需要一段时间,因此了解当前正在发生的事情很有用 - 已导入多少行,已规范化多少行等 -

另一种选择是添加一个 gem,让您可以在视图中查看流式传输的日志,但我认为这不是很有用,因为我正在寻找的是可以看到此历史的东西特定对象。

【问题讨论】:

    标签: ruby-on-rails postgresql activerecord logging


    【解决方案1】:

    使用json 列或json[]json 的 PostgreSQL 数组)对于日志记录来说是一个非常的坏主意。

    每次更新时,都必须读取整个列的内容,在内存中进行修改,然后再次完整地写出。

    相反,创建一个用于记录此类对象的表,其中包含正在记录的表的 FK 和每个条目的时间戳。为每个日志条目插入一行。

    顺便说一句,如果报告在单个事务中运行,则在整个视图提交之前,其他客户端将无法看到任何日志行,在这种情况下,它不利于进度监控,但也不会你原来的想法。您需要改用NOTICE 消息。

    【讨论】:

      猜你喜欢
      • 2016-03-29
      • 2021-09-09
      • 1970-01-01
      • 2011-03-30
      • 2012-01-08
      • 2022-06-19
      • 2017-01-03
      • 1970-01-01
      • 2015-04-28
      相关资源
      最近更新 更多