Inilah yang saya temukan ketika mencoba menjawab pertanyaan yang sama persis. Ini mungkin tidak komprehensif, dan bahkan mungkin tidak akurat dalam beberapa hal.
Singkatnya, RQ dirancang agar lebih sederhana. Seledri dirancang agar lebih kuat. Keduanya luar biasa.
- Dokumentasi. Dokumentasi RQ lengkap tanpa rumit, dan mencerminkan kesederhanaan proyek secara keseluruhan - Anda tidak pernah merasa tersesat atau bingung. Dokumentasi Celery juga komprehensif, tetapi berharap untuk mengunjunginya kembali cukup sering ketika Anda pertama kali mengaturnya karena ada terlalu banyak pilihan untuk diinternalisasi.
Pemantauan. Bunga Celery dan dasbor RQ keduanya sangat mudah diatur dan memberi Anda setidaknya 90% dari semua informasi yang Anda inginkan
Dukungan broker. Seledri adalah pemenangnya, RQ hanya mendukung Redis. Ini berarti lebih sedikit dokumentasi tentang "apa itu broker", tetapi juga berarti Anda tidak dapat beralih broker di masa mendatang jika Redis tidak lagi berfungsi untuk Anda. Misalnya, Instagram menganggap Redis dan RabbitMQ dengan Celery . Ini penting karena broker yang berbeda memiliki jaminan yang berbeda, misalnya Redis tidak dapat (pada saat penulisan) menjamin 100% bahwa pesan Anda terkirim.
Antrian prioritas. Model antrian prioritas RQ sederhana dan efektif - pekerja membaca dari antrian secara berurutan . Seledri membutuhkan pemintalan beberapa pekerja untuk mengkonsumsi dari antrian yang berbeda. Kedua pendekatan tersebut berhasil
Dukungan OS. Celery adalah pemenang yang jelas di sini, karena RQ hanya berjalan pada sistem yang mendukung fork
misalnya sistem Unix
Dukungan bahasa. RQ hanya mendukung Python, sedangkan Celery memungkinkan Anda mengirim tugas dari satu bahasa ke bahasa lain
API. Celery sangat fleksibel (beberapa hasil backend, format konfigurasi yang bagus, dukungan kanvas alur kerja) tetapi tentu saja kekuatan ini bisa membingungkan. Sebaliknya, RQ api itu sederhana.
Dukungan subtugas. Celery mendukung subtugas (misalnya membuat tugas baru dari dalam tugas yang sudah ada). Saya tidak tahu apakah RQ melakukannya
Komunitas dan Stabilitas. Seledri mungkin lebih mapan, tetapi keduanya adalah proyek aktif. Saat penulisan, Celery memiliki ~ 3500 bintang di Github sementara RQ memiliki ~ 2000 dan kedua proyek menunjukkan perkembangan aktif
Menurut pendapat saya, Celery tidak serumit reputasinya yang mungkin membuat Anda percaya, tetapi Anda harus RTFM.
Jadi, mengapa ada orang yang mau menukar Celery (bisa dibilang lebih berfitur lengkap) untuk RQ? Dalam pikiran saya, semuanya bermuara pada kesederhanaan. Dengan membatasi dirinya pada Redis + Unix, RQ menyediakan dokumentasi yang lebih sederhana, basis kode yang lebih sederhana, dan API yang lebih sederhana. Ini berarti Anda (dan kontributor potensial untuk proyek Anda) dapat fokus pada kode yang Anda pedulikan, daripada harus menyimpan detail tentang sistem antrian tugas di memori kerja Anda. Kita semua memiliki batasan tentang berapa banyak detail yang dapat kita pikirkan sekaligus, dan dengan menghilangkan kebutuhan untuk menyimpan rincian antrian tugas di sana, RQ memungkinkan kembali ke kode yang Anda pedulikan. Kesederhanaan itu datang dengan mengorbankan fitur-fitur seperti antrian tugas antar-bahasa, dukungan OS yang luas, jaminan pesan yang 100% andal, dan kemampuan untuk beralih broker pesan dengan mudah.