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.