如何在Odoo 9中超越session_gc()方法?

时间:2018-08-13 07:51:18

标签: 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 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

我以这种方式过度骑行,但未获得理想的结果,但是当我将这些行放入base的http.py文件中时,它工作正常。我不知道为什么它不能在自定义模块中工作

1 个答案:

答案 0 :(得分:0)

您忘记了必要的装饰器route()

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

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

您可以在Controllers

阅读更多内容