#python #django #caching #celery
#python #django #кэширование #сельдерей
Вопрос:
Я получаю сообщение об ошибке cache.set(key, value, time_expire)
Вот мой код:
from django.core.cache import cache
cache_key = 'unique keyname'
res = cache.get(cache_key)
# res data is None
res = 'some data'
cache.set(cache_key, res, 60 * 60 * 24 * 30)
Settings.py
# Cache servers
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis-ha-1/'
'IP1,'
'IP2,'
'IP3'
'/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis_sentinel.SentinelClient',
}
}
}
Но на cache.set
я получаю
get_client () получил неожиданное ключевое слово ‘tried’
Код выполняется через Celery.
Django==1.10.5
django-celery==3.2.2
celery==3.1.25
django-redis==4.7.0
django-redis-sentinel==1.0
В чем может быть проблема?
Редактировать
Я использовал команду:
pip install django-redis-sentinel --upgrade
Вот результат:
Requirement already up-to-date: django-redis-sentinel in /lib/python2.7/site-packages (1.0)
Requirement already satisfied, skipping upgrade: django-redis>=3.8.0 in /lib/python2.7/site-packages (from django-redis-sentinel) (4.7.0)
Requirement already satisfied, skipping upgrade: redis>=2.10.0 in /lib/python2.7/site-packages (from django-redis>=3.8.0->django-redis-sentinel) (2.10.6)
Комментарии:
1. может быть, может помочь полная трассировка стека? здесь не так много того, что могло бы объяснить проблему.
2. просто получаю эту ошибку в исключении и ничего больше. Даже я перезагружаю серверы кэша.
3. Похоже, что django-redis-sentinel не обновлялся в течение четырех лет и устарел. Я сомневаюсь, что это совместимо с какой-либо последней версией Django.
4. @DanielRoseman Смотрите отредактированный вопрос.
5. @DanielRoseman имел в виду, что пакет pypi не обновлялся в течение четырех лет (не то чтобы ваш локальный не обновлялся).
Ответ №1:
Проблема с версиями. Параметр Tried был отменен и удален, поэтому используемая вами версия django redis уже обновлена, но какой-то пакет, который вы используете, не является и пытается передать этот параметр.
stacktrace сообщит вам, где или что является «СТАРЫМ», или просто откатит django-redis до 4.5? Я не уверен, но я думаю, что все было в порядке.