Сессии на Memcached в Django, время истечения кеша всегда 300 с, когда я установил SESSION_COOKIE_AGE = 0

Мой Django Settings.py вот так:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
        #'LOCATION': os.environ['MEMCACHED']
        'LOCATION': "127.0.0.1",
         #"BINARY" : True,
    },
}
SESSION_SAVE_EVERY_REQUEST = True
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_COOKIE_AGE = 0 

Я храню свои сессии на memcached. Но время кеша истекает всегда 300 с!

Как и в документе django, они говорят, что SESSION_COOKIE_AGE = 0 означает никогда не превышать тайм-аут, но он не используется для тайм-аута кеша?

Итак, теперь я хочу, чтобы кэш сеанса никогда не прерывался до закрытия браузера?

Не говорите мне только установить SESSION_EXPIRE_AT_BROWSER_CLOSE, потому что я сохраняю сессии в memcached, у кеша тоже есть время истечения. Я хочу, чтобы кеш никогда не истекал.

Благодарю.

2 ответа

Я нахожу причину!

У них есть CACHES в Settings.pyКогда вы используете memcached для хранения сессии, и установите SESSION_COOKIE_AGE=0, Django будет использовать тайм-аут по умолчанию (300 с) для каждого кэша.

Если вы хотите, чтобы тайник никогда не устанавливался, вам нужно добавить TIMEOUT=0 в CACHES

РЕДАКТИРОВАТЬ: Я нашел это сообщение от 2006 года https://groups.google.com/forum/ Попробуйте добавить этот параметр в settings.py вашего приложения.

Я думаю, что вы могли бы положить время истечения очень далеко (например, 2050), и оно должно работать. Попробуйте, может быть, кто знает: с.

Другие вопросы по тегам