В Django/python, как я устанавливаю кэш-память на бесконечное время?

cache.set(key, value, 9999999)

Но это - весьма конечное время...

9
задан TIMEX 26 May 2010 в 22:27
поделиться

1 ответ

def _get_memcache_timeout(self, timeout):
    """
    Memcached deals with long (> 30 days) timeouts in a special
    way. Call this function to obtain a safe value for your timeout.
    """
    timeout = timeout or self.default_timeout
    if timeout > 2592000: # 60*60*24*30, 30 days
        # See http://code.google.com/p/memcached/wiki/FAQ
        # "You can set expire times up to 30 days in the future. After that
        # memcached interprets it as a date, and will expire the item after
        # said date. This is a simple (but obscure) mechanic."
        #
        # This means that we have to switch to absolute timestamps.
        timeout += int(time.time())
    return timeout

И из FAQ:

Каковы ограничения на установку времени истечения? (почему есть ограничение в 30 дней?)

Вы можете установить время истечения до 30 дней в будущем. После этого memcached интерпретирует его как дату и будет удалять элемент после указанной даты. Это простая (но непонятная) механика.

12
ответ дан 4 December 2019 в 08:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: