Odoo cache

   

  • 数据缓存
  • 方法缓存

       

数据缓存

每个环境一个 cache

无需特别设置, 它本身就是起作用的

   

Flushing

数据落库

   

Model.flush_recordset()

可指定字段; 重算记录集, 并落盘

Model.flush_model()

可指定字段; 重算全部记录集, 并落盘

Model.flush()

可指定字段; 落盘

Environment.flush_all()

环境里面的全部数据集都落盘

Model._flush()

可指定字段,记录; 落盘

   

Invalidate

缓存失效

   

Environment.invalidate_all()

环境里面的全部cache都失效

Cache.invalidate()

支持 传递参数 spec, 只清除特定的 cache

Cache.clear()

清除全部

   

   

方法缓存

每个注册表一个 cache,默认大小是 8192

缓存的 KEY 是 (method,*ARGS, **KWARGS)

启用了cache的方法, 在执行的时候, 尝试从 cache 中查找上一次运行的结果; 否则, 运行方法,并将结构缓存起来

   

使用 ormcache

在方法上使用装饰器 tools.ormcache() 进行修饰

   

清除 cache

使用 Cache.clear() 方法

或者 Registry._clear_cache()

或者 Model._clear_cache()

 

可以通过 http://127.0.0.1/ormcache_stats 查看缓存统计[在 APP 商店查找 ormcache_stats 模块]