170 похожих чатов

Добрый вечер! У меня довольно наболевший вопрос к тем, кто давно,

регулярно и успешно использует celery на пратике: почему вы считаете, что celery это не переоцененный велосипед, а стоящий инструмент, который нестыдно затащить к себе в окружение?

Мой опыт работы с сельдереем несколько месяцев. И весь этот опыт я могу описать исключительно как мучение.

Проблемы:
1) ядро целери представляет собой набор из нескольких библиотек, каждая из которых ведется своей полугруппой разработчиков, которые не слишком оглядываются друг на друга. Каждый новый релиз что-то ломает в совместимости.
2) Они внедряют какие-то экзотические возможности, в то время как самые базовые работают криво. Ишью тянутся годами из одной мажор версии в другую. Большая из них тупо закрывается с комментарием: "у нас на это нет времени и ресурсов", либо "разработка функциональности не профинансирована".
3) Часть заявленных возможностей не работает с rabbitmq, другая - c redis. Про другие вообще говорить не стоит.
4) Совершенно непрозрачный механизм работы с очередями и внутренними счетчиками. Такое ощущение, что никто полностью не понимает, как оно работает. Информацию приходится выуживать из какие-то отдельных комментариев по всей сети.
5) Если бы мне нужна была очередь асинхронных задач, то, мне кажется, проще было бы поднять несколько нод на каком-нибудь асинхронном фреймворке в качестве апстрима за nginx, который бы по раундробину раскидывал бы запросы.
6) Если бы мне нужна была очередь отложенных асинхронных задач, то надежднее было бы полагаться на свой транспорт и свое хранение, а не на какие-то непонятные обертки над amqp и redis.
7) Ни rabbit, ни redis не имеют встроенной поддержки eta. Она реализуется через внутренние счетчики и виртуальные очереди на воркерах. Малейший рассинхрон с временной областью видимости и задачи начинают множиться. То есть, одна из основных идей, может подвести в любой момент - не рассчитал временные окна или какой-то воркер вовремя не отослал acknowledge - лови 50 писем одному пользователю!
8) Не работает на винде (так себе минус, но все же)
9) Мониторинг через flower, который отстает на несколько версий от latest. При этом сам flower агент тоже является подписчиком очереди из-за чего тоже вносит путаницу в распределение и назначение задач. Можно снимать прометеус метрики - их не смотрел.
10) Документация частично неактуальна и специально приукрашивают плюсы, специально скрывая минусы.
11) Если меняется код задачи, а система воркеров распределенная, то менять надо везде с релоудом всех. И тут своими броадкаст сообщениями они вообще вносят хаос в общую обработку.
12) Поддержка джанги тоже где-то с краю. Интеграция делается четвертыми лицами со своим додумыванием. Сюда же дичь с временными зонами. Если использовать что-то кроме utc, то начинается трэш: в логи пишется системное время, внутри воркеров utc, в цветке что-то свое

Почему вы ставите ему звезды на гитхабе? У вас более положительный юзер экспериенс? Вас не подводит eta? Вы молотите сотни и тысячи запросов в минуту и упираетесь именно в транспорт, а не в другие ресурсы? С этим не справился бы крон или свой микро-веб-сервис? Вы тоже чувствуете боль, но какие-то фишки вас заставляют терпеть? Если да, то какие?

2 ответов

14 просмотров

крон и докер больная тема, как раз юзаю celery-beat ибо не смог нормально крон всунуть

Нормально прорвало. Да все городят свои велосипеды очередей обработки чаще всего. А пока велосипед не нагорожен - используется сельдерей.

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Карта сайта