Python OpenERP缓存功能

Python OpenERP缓存功能,python,caching,openerp,Python,Caching,Openerp,我想在我的OpenERP模块中缓存一些结果,所以我四处搜索了一下,找到了。不幸的是,我能找到的最多文档都在类声明中: 将其用作计划缓存超时的函数的装饰器:0=无超时,否则以秒为单位 有人能推荐一个好的例子来说明如何使用它吗?是否有已知的问题需要避免?在深入研究之后,我发现的最简单的例子是: 看起来您只是选择了一个要缓存的模型方法,然后将缓存添加为。如果某些事件应清除缓存,如,则使用缓存方法作为缓存对象: if not result3: se

我想在我的OpenERP模块中缓存一些结果,所以我四处搜索了一下,找到了。不幸的是,我能找到的最多文档都在类声明中:

将其用作计划缓存超时的函数的装饰器:0=无超时,否则以秒为单位


有人能推荐一个好的例子来说明如何使用它吗?是否有已知的问题需要避免?

在深入研究之后,我发现的最简单的例子是:

看起来您只是选择了一个要缓存的模型方法,然后将缓存添加为。如果某些事件应清除缓存,如,则使用缓存方法作为缓存对象:

            if not result3:
                self._get_id.clear_cache(cr.dbname, uid, module, xml_id)
默认情况下,方法的前两个参数在缓存时被忽略(大多数情况下是游标和用户id)


这一切都只是基于略读代码。我很想听听实际使用过它的人的反馈。

缓存目前更可用,因为它是LRU,不再是无限缓存

默认情况下,第一个 该方法的两个参数是 缓存时忽略(光标和用户) 在大多数情况下为id)

  • 这可以通过传递skiparg参数进行修改
  • 被跳过的参数是隐式传递的self和游标。当skiparg为2时,在缓存中使用userid
  • 在7.0(不确定其他版本)中,
    multi
    timeout
    参数被忽略。此外,传递小于
    2
    skiparg
    将产生不良结果。
                if not result3:
                    self._get_id.clear_cache(cr.dbname, uid, module, xml_id)