Фреймворк кэша Django не работает в приложении Django-Celery

#python #django #caching #celery

#python #django #кэширование #сельдерей

Вопрос:

Я использую Django Celery для асинхронной обработки данных. Вот мой settings.py:

 CACHES = {
'default': {
    'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    'LOCATION': 'unique-snowflake'
}
}
  

И вот моя задача Сельдерея:

 from celery import shared_task
from django.core.cache import cache

@shared_task
def process():
    my_data = cache.get('hello')
    if(my_data == None):
        my_data = 'something'
        cache.set('hello', my_data) 
  

Это очень просто. Однако каждый раз, когда я вызываю задачу, cache.get(‘hello’) всегда возвращает None . Я понятия не имею, почему. Кто-нибудь может мне помочь?

Я также пробовал использовать Memcached и эти настройки:

 > CACHES = {
>     'default': {
>         'BACKEND':
>         'django.core.cache.backends.memcached.MemcachedCache',
>         'LOCATION': '127.0.0.1:11211',
>         'TIMEOUT': 60 * 60 * 60 * 24,
>         'OPTIONS': {
>             'MAX_ENTRIES': 5000,
>         }
>     } }
  

Конечно, memcached выполняется как демон. Но код все еще не работает…

Комментарии:

1. LocMemCache хранит результаты в памяти, и значения удаляются из него, как только функция завершает выполнение. Однако это не должно быть проблемой с Memcached. Попробуйте настроить без TIMEOUT и OPTIONS .

2. Это работает! Спасибо. Теперь вопрос в том, почему ТАЙМ-АУТ и ПАРАМЕТРЫ заставляют memcached больше не работать?