Краткое описание: в 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 - тоже не кеширует
Помогите с идеями (идеи, может, что почитать-посмотреть, чтобы понять), что может быть не так, не могу понять куда копать, а гугл скоро забанит!