Сессии на 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), и оно должно работать. Попробуйте, может быть, кто знает: с.