İşte aynı soruyu cevaplamaya çalışırken bulduğum şey. Muhtemelen kapsamlı değildir ve hatta bazı noktalarda yanlış olabilir.
Kısacası, RQ her açıdan daha basit olacak şekilde tasarlanmıştır. Kereviz daha sağlam olacak şekilde tasarlanmıştır. İkisi de mükemmel.
- Belgeler. RQ'nun dokümantasyonu karmaşık olmaksızın kapsamlıdır ve projenin genel basitliğini yansıtır - asla kaybolmaz veya kafanız karışmaz. Celery'nin dokümantasyonu da kapsamlıdır, ancak içselleştirmek için çok fazla seçenek olduğundan, bir şeyleri ilk kurduğunuzda onu oldukça fazla ziyaret etmeyi bekleyin.
İzleme. Celery's Flower ve RQ kontrol panelinin kurulumu çok basittir ve size isteyebileceğiniz tüm bilgilerin en az% 90'ını verir
Broker desteği. Kereviz açık kazanan, RQ yalnızca Redis'i destekliyor. Bu, "komisyoncu nedir" hakkında daha az belge anlamına gelir, ancak aynı zamanda Redis artık sizin için çalışmazsa gelecekte aracıları değiştiremeyeceğiniz anlamına gelir. Örneğin Instagram, Kereviz ile hem Redis hem de RabbitMQ olarak değerlendirdi . Bu önemlidir, çünkü farklı aracıların farklı garantileri vardır, örneğin Redis (yazarken) mesajlarınızın teslim edildiğini% 100 garanti edemez .
Öncelik sıraları. RQ'ların öncelikli kuyruk modeli basit ve etkilidir - çalışanlar sırayla kuyruklardan okur . Kereviz, farklı kuyruklardan tüketmek için birden fazla işçiyi döndürmeyi gerektirir. Her iki yaklaşım da işe yarıyor
İşletim Sistemi Desteği. RQ yalnızca fork
Unix sistemlerini destekleyen sistemlerde çalıştığından, kereviz burada açık bir şekilde kazanandır.
Dil desteği. RQ yalnızca Python'u desteklerken, Celery görevleri bir dilden farklı bir dile göndermenize izin verir
API. Kereviz son derece esnektir (çoklu sonuç arka uçları, güzel yapılandırma formatı, iş akışı kanvas desteği) ancak doğal olarak bu güç kafa karıştırıcı olabilir. Aksine, RQ api basittir.
Alt görev desteği. Celery, alt görevleri destekler (örneğin, mevcut görevler içinden yeni görevler oluşturmak). RQ yapar mı bilmiyorum
Topluluk ve İstikrar. Kereviz muhtemelen daha yerleşiktir, ancak her ikisi de aktif projelerdir. Yazma tarihi itibarıyla Celery, Github'da ~ 3500 yıldıza sahipken, RQ'nun ~ 2000 yıldızı var ve her iki proje de aktif gelişme gösteriyor
Bence Kereviz, itibarı sizi inanmaya sevk edebileceği kadar karmaşık değil, ancak RTFM'ye ihtiyacınız olacak.
Öyleyse, neden birisi RQ için Kereviz'i (tartışmalı olarak daha tam özellikli) takas etmeye istekli olsun? Aklımda, her şey basitliğe bağlı. Kendisini Redis + Unix ile sınırlandıran RQ, daha basit dokümantasyon, daha basit kod tabanı ve daha basit bir API sağlar. Bu, sizin (ve projenize katkıda bulunabilecek potansiyel kişilerin) görev kuyruğu sistemiyle ilgili ayrıntıları çalışma belleğinizde tutmak zorunda kalmadan önemsediğiniz koda odaklanabileceğiniz anlamına gelir. Hepimizin kafamızda aynı anda kaç ayrıntı olabileceğine dair bir sınırımız vardır ve görev kuyruğu ayrıntılarını orada tutma ihtiyacını ortadan kaldırarak RQ, ilgilendiğiniz koda geri dönmenizi sağlar. Bu basitlik, diller arası görev kuyrukları, geniş işletim sistemi desteği,% 100 güvenilir mesaj garantileri ve mesaj aracılarını kolayca değiştirme yeteneği gibi özelliklerin pahasına gelir.