Comments 9
закопайте обратно
почему? зачем?
Когда в 2019-2020 в python допилили до юзабельности asyncio -- в этот момент Celery надёжно умер. Не вспоминайте про celery_pool_asyncio, пожалуйста
А можно поподробнее о том, как Celery надёжно умер? Если смотреть на развитие проекта с 2019 года, то, как минимум, количество звёздочек выросло примерно на 10 тысяч(по данным, которые смог нарулить дипсик). Плюс поддержка и развитие не прекращается.
И не совсем понимаю, причем здесь asyncio и celery? Я бы понял гринлеты и asyncio как инструмент конкурентности, но тут я вас не понимаю
Не вспоминайте про celery_pool_asyncio, пожалуйста
Не планировал рассматривать сторонние инструменты. Меня больше интересует сама по себе архитектура, принципы работы и всякие системные штуки(процессы-потоки) только на примере чистого Celery(ну, и в Docker, куда ж без него!)
Тогда для начала будьте честны сами с собой и расскажите, зачем на сегодня нужны пулы eventlet и gevent, которые манкейпатчат стдлиб питона и периодически рассыпаются на новых релизах? Зачем всё это? На сегодня в стдлибе есть asyncio и она гарантированно работает
У меня сложилось впечатление, что вы помимо celery не знаете ни одного другого решения такого класса. А ведь в питоне их как грязи. Тогда посмотрите в taskiq -- по крайней мере пару лет назад он был очень перспективным
Я с радостью отвечу на ваши вопросы, как получу ответ на свой
причем здесь asyncio и celery? Я бы понял гринлеты и asyncio как инструмент конкурентности, но тут я вас не понимаю
конечно:
А можно поподробнее о том, как Celery надёжно умер?
Умер точно так же, как Flask или axios -- язык предоставил новые возможности, что привело к созданию альтернатив, которые дают больше бенефитов. При этом коммитят до сих пор что во фласк, что в axios. Ну ладно аксиос -- он себя нашёл в вопросе мидлварей. А вот фласк точно мёртв
И не совсем понимаю, причем здесь asyncio и celery?
Делаем шаг назад. Статья посвящена конкурентным пулам -- eventlet и gevent. Возможно, вы не застали эпоху, когда альтернатив не было, и eventlet и gevent действительно были прорывом. Однако с тех пор механизм конкурентности был встроен в stdlib питона -- asyncio
Также, вероятно, вам не бросается в глаза, что с появлением в python встроенной в него asyncio сам python поделился на до и после -- на сегодня ровно ноль объективных причин не использовать asyncio в задачах, где так или иначе задействована сеть или пайпы
Спасибо за ответ, но всё-таки аналогия не является доказательством утверждения. Как и новое странное утверждение, что Flask мёртв(про аксиос(жава-скрипт?) не знаю, не работал). Да, у языка появляются и будут появляться новые возможности, но это не повод всё бросать и бежать переписывать, иначе бы поддержка старых версий заканчивалась бы через месяц. А если и повод, то не у всех есть ресурс.
Я разбираю Celery с позиции -- инструмента и задач, с которыми он работает. У меня нет цели объять необъятное и сравнить всё со всем. Выбрал я его не потому, что кроме селери ничего не знаю, а потому, что это сложный и интересный инструмент с богатой историей, на победах и ошибках которого растут другие. Если бы я утверждал, что моя правда наиправдейшая из всех правд, то вряд ли бы писал, что
Для новых приложений авторы советуют использовать, а старым проектам — мигрировать на
asyncio. В контексте же Celery можно мигрировать на Gevent.
И я разбираю конкурентность в контексте селери. Как asyncio решит проблему распределённых задач? Как asyncio решит проблему задач по расписанию? Как быть, прости-господи, с джангой и тысячами приложений и сервисов на нём и мёртвом фласке? Ставить сторонние библиотеки и переписывать с requests на aiohttp?
У вас странная фиксация(извините, если звучит резко) на асинхронности: Фласк мёртв, Селери мёртв, есть asyncio и больше ничего не нужно. Сложно спорить с вашим утверждением -- перефразирую -- асинхронность в пайтон изменила игру. Но до эпохи асинхронности тоже была жизнь и эту жизнь нужно не только поддерживать, но и развивать; и в этой жизни миграции будут сложным и дорогостоящим процессом. Все ли инженеры потянут? Хотя бы по веремени и душевным силам.
Поэтому моя цель на данный момент не агитировать за переход на селери и утверждать, что селери лучше всех, а если вы используете селери, то вот что он такое.
Ну, а если вы всё-таки уверены, что есть только asyncio, то будет интересно почитать статью от вас с полным разбором конкурентных подходов, включая и распределённые очереди.
ПС.
Возможно, вы не застали эпоху, когда альтернатив не было, и eventlet и gevent действительно были прорывом.
Да, не застал. И даже более -- не использовал такие пулы в собственном продакшене, о чём, в принципе, сожалею
Зеленые потоки Celery. Gevent и Eventlet