sql >> Databáze >  >> NoSQL >> Redis

Výhody a nevýhody použití celeru vs. RQ

Zde je to, co jsem našel, když jsem se snažil odpovědět na stejnou otázku. Pravděpodobně není vyčerpávající a v některých bodech může být dokonce nepřesný.

Stručně řečeno, RQ je navrženo tak, aby bylo všude jednodušší. Celer je navržen tak, aby byl robustnější. Oba jsou vynikající.

  • Dokumentace. Dokumentace RQ je komplexní, aniž by byla složitá, a odráží celkovou jednoduchost projektu – nikdy se necítíte ztraceni nebo zmatení. Dokumentace Celery je také obsáhlá, ale počítejte s tím, že ji budete často znovu navštěvovat, když věci poprvé nastavujete, protože existuje příliš mnoho možností k internalizaci
  • Sledování. Celery's Flower a řídicí panel RQ jsou velmi jednoduché na nastavení a poskytují vám alespoň 90 % všech informací, které byste kdy chtěli

  • Podpora makléře. Celer je jasný vítěz, RQ podporuje pouze Redis. To znamená méně dokumentace o tom, „co je broker“, ale také to znamená, že v budoucnu nemůžete změnit brokera, pokud pro vás Redis již nebude pracovat. Například Instagram zvažoval jak Redis, tak RabbitMQ s celerem. To je důležité, protože různí brokeři mají různé záruky, např. Redis nemůže (v době psaní) zaručit 100% doručení vašich zpráv.

  • Prioritní fronty. Model prioritních front RQ je jednoduchý a efektivní – pracovníci čtou z front v pořadí. Celer vyžaduje otočení více pracovníků ke konzumaci z různých front. Oba přístupy fungují

  • Podpora OS. Celer je zde jasným vítězem, protože RQ běží pouze na systémech, které podporují fork např. Unixové systémy

  • Jazyková podpora. RQ podporuje pouze Python, zatímco Celery vám umožňuje posílat úkoly z jednoho jazyka do jiného jazyka

  • API. Celer je extrémně flexibilní (backendy s více výsledky, pěkný konfigurační formát, podpora workflow canvas), ale přirozeně může být tato síla matoucí. Naproti tomu RQ api je jednoduché.

  • Podpora dílčích úkolů. Celery podporuje dílčí úkoly (např. vytváření nových úkolů ze stávajících úkolů). Nevím, jestli RQ ano

  • Společenství a stabilita. Celer je asi zavedenější, ale oba jsou aktivní projekty. V době psaní má Celery ~3500 hvězdiček na Github, zatímco RQ má ~2000 a oba projekty vykazují aktivní vývoj

Podle mého názoru není celer tak složitý, jak by vás jeho pověst mohla vést k domněnce, ale budete muset RTFM.

Proč by tedy byl někdo ochoten vyměnit (pravděpodobně plnohodnotnější) celer za RQ? V mé mysli to všechno spočívá v jednoduchosti. Tím, že se omezuje na Redis+Unix, poskytuje RQ jednodušší dokumentaci, jednodušší kódovou základnu a jednodušší API. To znamená, že se vy (a potenciální přispěvatelé do vašeho projektu) můžete soustředit na kód, na kterém vám záleží, místo abyste museli uchovávat podrobnosti o systému fronty úloh ve své pracovní paměti. Všichni máme limit na to, kolik podrobností může být v naší hlavě najednou, a odstraněním potřeby uchovávat v nich podrobnosti o frontě úkolů RQ umožňuje vrátit se ke kódu, na kterém vám záleží. Tato jednoduchost jde na úkor funkcí, jako jsou mezijazykové fronty úloh, široká podpora OS, 100% spolehlivé záruky zpráv a možnost snadno přepínat zprostředkovatele zpráv.



  1. Architektura pro bezpečnost:Průvodce pro MongoDB

  2. MongoDB vs. Cassandra

  3. Jak omezit počet aktualizací dokumentů v mongodb

  4. Jak vytvořit místní servisní sběrnici založenou na Windows mimo Azure, podobnou Redis s automatickým převzetím služeb při selhání?