其他分享
首页 > 其他分享> > odoo Reloading the model registry after database signaling, pgpool, cluster

odoo Reloading the model registry after database signaling, pgpool, cluster

作者:互联网

现象

搭odoo集群时服务总是重新加载并提示:Reloading the model registry after database signaling

原因

主从数据sequence不一致导致

解决

## 调整源码
    def check_signaling(self):
        """ Check whether the registry has changed, and performs all necessary
        operations to update the registry. Return an up-to-date registry.
        """
        if self.in_test_mode():
            return self

        with closing(self.cursor()) as cr:
            cr.execute(""" SELECT base_registry_signaling.last_value+base_registry_signaling.log_cnt,
                                  base_cache_signaling.last_value + base_cache_signaling.log_cnt
                           FROM base_registry_signaling, base_cache_signaling""")
            r, c = cr.fetchone()
            _logger.debug("Multiprocess signaling check: [Registry - %s -> %s] [Cache - %s -> %s]",
                          self.registry_sequence, r, self.cache_sequence, c)
            # Check if the model registry must be reloaded
            if self.registry_sequence != r:
                _logger.info("Reloading the model registry after database signaling.")
                self = Registry.new(self.db_name)
            # Check if the model caches must be invalidated.
            elif self.cache_sequence != c:
                _logger.info("Invalidating all model caches after database signaling.")
                self.clear_caches()
                self.cache_invalidated = False
            self.registry_sequence = r
            self.cache_sequence = c

        return self

参考:

https://blog.csdn.net/weixin_33805557/article/details/91738509
https://www.danaoker.com/archives/141

标签:cache,database,self,after,sequence,base,signaling,pgpool,registry
来源: https://www.cnblogs.com/qianxunman/p/16517346.html