Задать вопрос
@devlly

Почему memcached не возвращает значения при работе воркеров?

Краткое описание: в django shell memcached возвращает значения, при работе воркеров - нет.
Подробное:
настройки memcached и celery:
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}
CELERY_BROKER_URL = 'amqp://localhost'
CELERY_IGNORE_RESULT = True
CELERY_RESULT_BACKEND = 'cache+memcached://127.0.0.1:11211/'

пытаюсь кешировать вычесления внутри класса, выглядит так (ничего необычного, конечно):
comp_article = cache.get(url.strip())
if not comp_article:
print('set cache')
comp_article = NewArticle(url=url.strip(), compare=True)
array = comp_article.img_array
title = comp_article.url_title
lang = comp_article.language
val = CacheArticle(array, title, lang)  
 #CacheArticle = namedtuple('CacheArticle', ['img_array', 'url_title', 'language'])
cache.set(url, val, 86400)

потом в виртуальном окружении запускаю сервер джанги, кеш, воркер и periodic task :
sudo service memcached start
celery -A anf_man beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
celery -A anf_man worker --concurrency=1 -l info

если отдавать задачу вручную без beat - тоже не кеширует

Помогите с идеями (идеи, может, что почитать-посмотреть, чтобы понять), что может быть не так, не могу понять куда копать, а гугл скоро забанит!
  • Вопрос задан
  • 137 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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