如何超越ODOO9中的session_gc()方法?

如何超越ODOO9中的session_gc()方法?,odoo,odoo-9,Odoo,Odoo 9,我使用的是odoo 9,我需要在10分钟后终止用户会话,我在odoo目录的根目录http.py中找到了session_gc()方法。我想知道如何在我的自定义模块中超越此方法 import openerp import werkzeug.contrib.sessions import random import time import os import logging _logger = logging.getLogger(__name__) class OpenERPSess

我使用的是odoo 9,我需要在10分钟后终止用户会话,我在odoo目录的根目录http.py中找到了session_gc()方法。我想知道如何在我的自定义模块中超越此方法

 import openerp
 import werkzeug.contrib.sessions
 import random
 import time
 import os
 import logging
 _logger = logging.getLogger(__name__)

 class OpenERPSession2(openerp.http.OpenERPSession):

      def session_gc(session_store):
     _logger.info('-----session   ### ### Management')
     #if random.random() < 0.001:
     # we keep session one week
     #last_week = time.time() - 60 * 60 * 24 * 7
     last_week = time.time() - 60 * 1
     for fname in os.listdir(session_store.path):
        path = os.path.join(session_store.path, fname)
        try:
            if os.path.getmtime(path) < last_week:
                os.unlink(path)
        except OSError:
            pass
导入openerp 导入werkzeug.contrib.sessions 随机输入 导入时间 导入操作系统 导入日志记录 _logger=logging.getLogger(_名称__) 类OpenERPSession2(openerp.http.OpenERPSession): def会话_gc(会话_存储): _logger.info('----会话#######管理') #如果random.random()<0.001: #我们每周一节课 #上周=time.time()-60*60*24*7 上周=time.time()-60*1 对于os.listdir(session_store.path)中的fname: path=os.path.join(session\u store.path,fname) 尝试: 如果os.path.getmtime(path)<上周: 操作系统取消链接(路径) 除操作错误外: 通过
我以这种方式克服了这个问题,但并没有得到期望的结果,但当我将这些行放到base的http.py文件中时,它工作得很好。我不知道为什么它不能从自定义模块中工作

您忘记了必要的decorator
route()

要重写控制器,请从其类继承并重写相关方法,必要时重新公开它们:

class Extension(MyController):
    @route()
    def handler(self):
        do_before()
        return super(Extension, self).handler()

你可以在

上阅读更多内容。你试过猴子贴片吗?没有@CZoellner,我没有试过