get_client () получил неожиданное ключевое слово ‘tried’ в кэше Django

#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? Я не уверен, но я думаю, что все было в порядке.