forked from ietf-tools/datatracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcache.py
More file actions
20 lines (16 loc) · 758 Bytes
/
cache.py
File metadata and controls
20 lines (16 loc) · 758 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Copyright The IETF Trust 2023, All Rights Reserved
# -*- coding: utf-8 -*-
from django.core.cache.backends.base import DEFAULT_TIMEOUT
from django.core.cache.backends.memcached import PyMemcacheCache
from pymemcache.exceptions import MemcacheServerError
from .log import log
class LenientMemcacheCache(PyMemcacheCache):
"""PyMemcacheCache backend that tolerates failed inserts due to object size"""
def set(self, key, value, timeout=DEFAULT_TIMEOUT, version=None):
try:
super().set(key, value, timeout, version)
except MemcacheServerError as err:
if "object too large for cache" in str(err):
log(f"Memcache failed to cache large object for {key}")
else:
raise