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

原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/276886.html

(0)
上一篇 2022年7月25日
下一篇 2022年7月25日

相关推荐

发表回复

登录后才能评论