首页 > 其他分享 >odoo 集群频繁更新静态资源包,并失效缓存

odoo 集群频繁更新静态资源包,并失效缓存

时间:2022-12-28 01:00:26浏览次数:39  
标签:缓存 name args self counter key odoo 失效 method

频繁的更新会影响服务的性能
发生该事件的核心代码

    def lookup(self, method, *args, **kwargs):
        d, key0, counter = self.lru(args[0])
        key = key0 + self.key(*args, **kwargs)
        try:
            r = d[key]
            counter.hit += 1
            return r
        except KeyError:
            counter.miss += 1
            value = d[key] = self.method(*args, **kwargs)
            return value
        except TypeError:
            counter.err += 1
            return self.method(*args, **kwargs) 

目前认为由于两个服务器之间还存在某些数据,未完成共享,比如上方中的key 数据, 目前看起来还是存储在内存中的, 没有在redis 中存储, 结果就会导致两边的服务器查不到相应的缓存数据
key 的示例值如下:

('ir.qweb', <function IrQWeb._get_asset_nodes at 0x00000000085E8E18>, 'web.assets_backend', 'en_US', True, False, False, False, (None,))

其中使用了方法对象,存储的是一个地址值, 不同的服务器,在使用的时候自然会使用不同的地址,就导致key 的不一样, 尝试更改key 的值.
解决方案如下:
一个模型下的方法应该不会有重复的,所以直接将对象更改为方法名即可,即使用字符串
更改后的代码如下: (添加了 __name__))

    def lru(self, model):
        counter = STAT[(model.pool.db_name, model._name, self.method)]
        return model.pool.cache, (model._name, self.method.__name__), counter

标签:缓存,name,args,self,counter,key,odoo,失效,method
From: https://www.cnblogs.com/qianxunman/p/17009311.html

相关文章

  • DnsFlushResolverCache 清除windows DNS缓存
    DnsFlushResolverCache清除windowsDNS缓存 效果等同于ipconfig/flushdns命令。DnsFlushResolverCache函数是在Dnsapi.dll导出,该函数没有任何参数。MSDN中找不到......
  • CPU 缓存一致性 MESI 协议
    为什么需要缓存一致目前主流电脑的CPU都是多核心的,多核心的有点就是在不能提升CPU主频后,通过增加核心来提升CPU吞吐量。每个核心都有自己的L1Cache和L2Cache,只......
  • MySQL 8.0 为什么会放弃查询缓存?
    什么是查询缓存?查询缓存就是将一次查询结果存储在内存中,假如下一次查询结果在内存中,就直接在内存中读取。MySQL查询缓存原理就是将查询SQL进行Hash处理,然后将结果存进内......
  • 适用场景全新升级!扩展 Dragonfly2 作为分布式缓存系统架构 | 龙蜥技术
    文/龙蜥社区开发者 Dragonfly2简介Dragonfly作为​​龙蜥社区的镜像加速标准解决方案​​,是一款基于P2P的智能镜像和文件分发工具。它旨在提高大规模......
  • Odoo 基于Win10搭建基于Win10搭建odoo14开发环境搭建
    实践环境win10Python3.6.2odoo_14.0.latest.tar.gz下载地址:https://download.odoocdn.com/download/14/src?payload=MTY3MDg1MTM3Ni4xNC5zcmMud0tZRWZLX2I5UVF0Tm51U......
  • springboot 缓存介绍,缓存注解和常见问题
    spring缓存    spring框架对缓存服务进行了抽象,提供了缓存增删查改等功能。但需要实现一个具体的数据存储实体。   缓存与缓冲区    缓存是无感......
  • 【Redis场景2】缓存更新策略(双写一致)
    在业务初始阶段,流量很少的情况下,通过直接操作数据是可行的操作,但是随着业务量的增长,用户的访问量也随之增加,在该阶段自然需要使用一些手段(缓存)来减轻数据库的压力;所谓遇......
  • SAP OData 框架里的缓存(Cache)设计专题讲座试读版
    正如本教程的开篇介绍文章​​SAPOData开发教程-从入门到提高(包含SEGW,RAP和CDP)​​所提到的,SAPOData服务开发,从实现技术上来说,可以分为三大类。因此本教程也分......
  • 缓存穿透、缓存击穿、缓存雪崩
    大家好,我是楼仔!今天写的这个主题内容,其实非常基础,但是作为高并发非常重要的几个场景,绝对绕不开,估计大家面试时,也经常会遇到。这个主题的文章,网上非常多,本来想直接转载一......
  • 聊聊spring事务失效的12种场景,太坑了
    前言对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了。在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么......