Получи случайную криптовалюту за регистрацию!

Celery (сельдерей) Что такое Celery? Библиотека для Python, п | Nikita Shamaev (channel)

Celery (сельдерей)

Что такое Celery?
Библиотека для Python, позволяющая выполнять асинхронные и периодические задачи.

Мой опыт с сельдереем
Познакомился я с ним на первом же проекте, где он как раз и использовался для обработки долгих задачек в "фоне" и для периодических задач (отправлять группе пользователей нужное уведомление раз в неделю). Дальше уже нужно было конфигурировать его, делать повторные исполнения задач в случае ошибок, выстраивать пайплайны из задач и тд.
И вроде все ок, задачки асинхронно и периодически выполняются, но мне захотелось узнать поглубже, как все это работает.
Условно говоря, что конкретно происходит, когда я пишу some_task.delay()? Задача попадает в очередь, а как она туда попадает, а в какую конкретно очередь попадает, а как потом исполняется, а какой worker ее исполняет, а в этот момент создается поток или процесс? В общем, начал гуглить. В документации все очень разрозненно, находится в разных местах -- где-то в тексте, где-то приходится ковырять исходный код. В статьях только общие слова типа "ну вот есть celery, есть брокер сообщений redis, задачки туда отправляются, потом оттуда берутся и исполняются". И потом, что больше всего меня бесило, все хотят показать, как поднять Celery в Django. И так в большинстве статей, пока я не наткнулся на пост

Пост Ines Panker
Я нашел священный грааль среди всех этих статей и гайдов. Это пост Ines Panker на ее личном сайте. В ней она и ответила на большинство моих вопросов, уменьшив энтропию незнания.

Ну а я решил уменьшить ее и для остальных разработчиков. Перевод этой прекрасной статьи ниже, велком!

https://habr.com/ru/post/686820/