Подтвердить что ты не робот

Зачем использовать сельдерей вместо RabbitMQ?

С моей точки зрения, сельдерей - это распределенная очередь задач, что означает, что единственное, что он должен делать, - это отправлять задачи/задания другим серверам и возвращать результат. RabbitMQ - очередь сообщений, и ничего больше. Тем не менее, работник мог просто прослушать MQ и выполнить задачу при получении сообщения. Это дает то, что предлагает Сельдерей, поэтому зачем сельдерею вообще?

4b9b3361

Ответ 1

Вы правы, вам совсем не нужен сельдерей. Когда вы разрабатываете распределенную систему, есть много вариантов, и нет правильного способа делать то, что подходит для всех ситуаций.

Многие считают, что более гибко иметь пулы пользователей сообщений, ожидающих появления сообщения в очереди, выполнения некоторых работ и отправки сообщения, когда работа будет завершена.

Сельдерей - это основа, которая охватывает множество вещей в пакете, но если вам действительно не нужен весь пакет, то лучше настроить RabbitMQ и реализовать именно то, что вам нужно без всякой сложности. Кроме того, RabbitMQ может использоваться во многих сценариях, помимо сценария очереди задач, который реализует Celery.

Но если вы решите выбрать Сельдерей, подумайте дважды о RabbitMQ. Модель массового обслуживания сообщений Celery упрощена, и она действительно лучше подходит для чего-то вроде Redis, чем для RabbitMQ. Кролик имеет богатый набор опций, которые, по сути, игнорирует сельдерей.

Ответ 2

Celery в основном обеспечивает хороший интерфейс для выполнения только того, что вы сказали, и имеет дело со всей конфигурацией для вас. Да, вы могли бы это сделать вручную, но вы просто переписывали бы сельдерей.