Z mojego rozumienia, Seler jest rozproszoną kolejką zadań, co oznacza, że jedyną rzeczą, którą powinien zrobić, jest wysłanie zadań/zadań do innych serwerów i uzyskanie wyniku z powrotem. RabbitMQ to kolejka komunikatów i nic więcej. Pracownik może jednak po prostu wysłuchać MQ i wykonać zadanie po odebraniu wiadomości. Daje to dokładnie to, co oferuje Seler, więc dlaczego w ogóle potrzebujesz selera?Dlaczego warto używać Celery zamiast RabbitMQ?
Odpowiedz
Masz rację, w ogóle nie potrzebujesz selera. Kiedy projektujesz system rozproszony, istnieje wiele opcji i nie ma właściwego sposobu robienia rzeczy, które pasują do każdej sytuacji.
Wiele osób uważa, że bardziej elastyczne jest posiadanie grup konsumentów wiadomości oczekujących na pojawienie się wiadomości w kolejce, wykonanie pracy i wysłanie wiadomości po zakończeniu pracy.
Seler to framework, który opakowuje wiele rzeczy w pakiet, ale jeśli naprawdę nie potrzebujesz całego pakietu, lepiej jest skonfigurować RabbitMQ i zaimplementować to, czego potrzebujesz bez całej złożoności. Ponadto RabbitMQ może być użyty w wielu innych scenariuszach oprócz scenariusza kolejki zadań, który realizuje Celery.
Ale jeśli wybierzesz Seler, pomyśl dwa razy o RabbitMQ. Model kolejkowania wiadomości Selera jest uproszczony i naprawdę lepiej pasuje do czegoś takiego jak Redis niż do RabbitMQ. Królik ma bogaty zestaw opcji, które w zasadzie ignoruje Seler.
Seler w zasadzie zapewnia przyjemny interfejs do robienia tego, co mówisz, i zajmuje się całą konfiguracją dla ciebie. Tak, możesz to zrobić ręcznie, ale po prostu przepisujesz seler.
Istnieje również element operacji. Ogromne części selera są tam dla niezawodności (na przykład nie ulegają awarii, gdy określony wyjątek jest serializowany, itp.) I zarządzaniu pracownikami i grupami pracowników. – asksol
- 1. Dlaczego warto używać ROLAP zamiast zwykłego MySQL?
- 2. Dlaczego warto używać argparse zamiast optparse?
- 3. Dlaczego warto używać AsQueryable() zamiast List()?
- 4. Dlaczego warto używać spyOn zamiast jaśminu.createSpy?
- 5. Dlaczego warto używać var zamiast nazwy klasy?
- 6. Dlaczego warto używać metody classmethod zamiast staticmethod?
- 7. Dlaczego warto używać Long.valueOf (...) zamiast długiego literału?
- 8. Dlaczego warto używać Function.prototype.bind zamiast Function.prototype.call?
- 9. Dlaczego warto używać NSAutoreleasePool?
- 10. Dlaczego warto używać Gradle?
- 11. Dlaczego warto używać shm_open?
- 12. Dlaczego warto używać niestandardowych zdarzeń zamiast bezpośrednich wywołań metod?
- 13. Dlaczego warto używać funkcji rbegin() zamiast końcówki() - 1?
- 14. Dlaczego warto używać TimeSpan.CompareTo() zamiast < > lub =
- 15. Dlaczego warto używać angularfire $ destroy()?
- 16. Dlaczego warto używać JIT UNITVERSIONING?
- 17. Dlaczego warto używać QObject :: setObjectName()?
- 18. Dlaczego warto używać AsynchronousFileChannel Java?
- 19. Dlaczego warto używać wzorca konstruktora?
- 20. Dlaczego warto używać aliasingów klas?
- 21. ReactJS: Dlaczego warto używać this.props.children?
- 22. Czy warto używać list asocjacyjnych zamiast rekordów?
- 23. Dlaczego warto używać wielu kontekstów OpenGL
- 24. Dlaczego warto użyć char [] zamiast ciągu?
- 25. Projekty Multi Celery z tym samym procesem obsługi brokerów RabbitMQ
- 26. Dlaczego warto używać "succeed do" w Haml?
- 27. Dlaczego warto używać Ext.apply w initComponent
- 28. Dlaczego warto używać opcji Opcjonalnie.Opcji na Opcjonalne.Niewłączalne?
- 29. Dlaczego warto używać statycznego w D?
- 30. dlaczego warto używać WeakReference na Android Słuchacze?
"Królik ma bogaty zestaw opcji, których Seler zasadniczo ignoruje". To prawda, ale trochę zwodnicze. Możesz na przykład skonfigurować reguły routingu w warstwie Królika, które nie są kontrolowane przez Seler, ale wpływają na routing i konsumpcję zadań Celery. Problem w projektowaniu polega na tym, czy routing ma być obsługiwany przez dzwoniącego, niestandardowy router Seler lub mechanizm wymiany. To prawda, że te konfiguracje Królika mogą być "niewidzialne" dla Selera, ale to nie znaczy, że nie przynoszą użytecznych efektów. –