Отключить кеширование на задаче сельдерея

У меня есть цепочка сельдерея, которая имеет несколько задач, одна из которых - извлечь файл tar и вернуть JSON, найденный в этом файле tar. По завершении цепочки, pylibmc повышения error 37 from memcached_set: SUCCESS Это означает, что значение memcached, связанное с этим ключом задачи, превышает 1 МБ.

Эта ошибка не влияет на целостность данных цепочки, но я бы предпочел не записывать эти данные в кеш, так как они никогда больше не будут использоваться.

Я просмотрел документацию по Celery, но не нашел ничего, что помогло бы отключить кеш для конкретной задачи. Любая помощь будет оценена.

1 ответ

Решение

Ты можешь использовать CELERY_IGNORE_RESULT или же Task.ignore_result не хранить результат. Значение по-прежнему возвращается функциям в цепочке, они просто не сохраняются в кеше. Вот пример использования ignore_result

@task(ignore_result=True)
def your_task():
    # your code here

Документы: http://docs.celeryproject.org/en/latest/reference/celery.app.task.html

Сообщение в блоге, которое указало мне правильное направление: https://www.caktusgroup.com/blog/2014/09/29/celery-production/

Другие вопросы по тегам