當前位置: 首頁>>代碼示例>>Python>>正文


Python Project.cache_id方法代碼示例

本文整理匯總了Python中agilito.models.Project.cache_id方法的典型用法代碼示例。如果您正苦於以下問題:Python Project.cache_id方法的具體用法?Python Project.cache_id怎麽用?Python Project.cache_id使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在agilito.models.Project的用法示例。


在下文中一共展示了Project.cache_id方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: f_cached

# 需要導入模塊: from agilito.models import Project [as 別名]
# 或者: from agilito.models.Project import cache_id [as 別名]
    def f_cached(*args, **kwargs):
        global CACHE_ENABLED

        self = args[0]
        if not CACHE_ENABLED or not hasattr(self, 'project_id'):
            return f(*args, **kwargs)

        params = f.func_code.co_varnames[:f.func_code.co_argcount]
        vardict = dict(zip(params, ['<None>' for d in params]))
        vardict.update(dict(zip(f.func_code.co_varnames, args)))
        vardict.update(kwargs)
        # replace 'self' with module:class:id:method 
        obj = '%s.%s.%s(%s' % (self.__class__.__module__, self.__class__.__name__, f.__name__, str(self.id))
        vardict['self'] = obj
        
        from agilito.models import Project

        pv = Project.cache_id(self.project_id)

        key = CACHE_PREFIX + '.'
        key += ','.join([str(vardict[v]) for v in params]) + ')'
        v = cache.get(key + '#version')
        if v == pv:
            v = cache.get(key + '#value')
            if not v is None:
                return v

        v = f(*args, **kwargs)
        cache.set(key + '#version', pv, 1000000)
        cache.set(key + '#value', v, 1000000)

        return v
開發者ID:mreperger,項目名稱:ajellito,代碼行數:34,代碼來源:utils.py

示例2: f_cached

# 需要導入模塊: from agilito.models import Project [as 別名]
# 或者: from agilito.models.Project import cache_id [as 別名]
    def f_cached(*args, **kwargs):
        global CACHE_ENABLED

        if not CACHE_ENABLED:
            return f(*args, **kwargs)

        params = f.func_code.co_varnames[1:f.func_code.co_argcount]
        vardict = dict(zip(params, ['<default>' for d in params]))
        vardict.update(dict(zip(params, args[1:])))
        vardict.update(kwargs)
        u = args[0].user  # request.user

        pv = Project.cache_id(vardict["project_id"])

        key = "%s.agilito.views.%s(%s)" % (CACHE_PREFIX, f.__name__, ",".join([str(vardict[v]) for v in params]))

        v = cache.get(key + "#version")
        if v == pv:
            v = cache.get(key + "#value")
            if not v is None:
                return v

        v = f(*args, **kwargs)
        cache.set(key + '#version', pv, 1000000)
        cache.set(key + '#value', v, 1000000)

        return v
開發者ID:httpdss,項目名稱:ajellito,代碼行數:29,代碼來源:tools.py


注:本文中的agilito.models.Project.cache_id方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。