Need advice about which tool to choose?Ask the StackShare community!
Celery vs Sidekiq: What are the differences?
Developers describe Celery as "Distributed task queue". Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well. On the other hand, Sidekiq is detailed as "Simple, efficient background processing for Ruby". Sidekiq uses threads to handle many jobs at the same time in the same process. It does not require Rails but will integrate tightly with Rails 3/4 to make background processing dead simple.
Celery and Sidekiq are primarily classified as "Message Queue" and "Background Processing" tools respectively.
"Task queue" is the top reason why over 84 developers like Celery, while over 120 developers mention "Simple" as the leading cause for choosing Sidekiq.
Celery and Sidekiq are both open source tools. It seems that Celery with 12.7K GitHub stars and 3.3K forks on GitHub has more adoption than Sidekiq with 9.66K GitHub stars and 1.66K GitHub forks.
StackShare, SendGrid, and New Relic are some of the popular companies that use Sidekiq, whereas Celery is used by Sentry, Ansible, and OpenLabel. Sidekiq has a broader approval, being mentioned in 346 company stacks & 77 developers stacks; compared to Celery, which is listed in 271 company stacks and 77 developer stacks.
I am just a beginner at these two technologies.
Problem statement: I am getting lakh of users from the sequel server for whom I need to create caches in MongoDB by making different REST API requests.
Here these users can be treated as messages. Each REST API request is a task.
I am confused about whether I should go for RabbitMQ alone or Celery.
If I have to go with RabbitMQ, I prefer to use python with Pika module. But the challenge with Pika is, it is not thread-safe. So I am not finding a way to execute a lakh of API requests in parallel using multiple threads using Pika.
If I have to go with Celery, I don't know how I can achieve better scalability in executing these API requests in parallel.
For large amounts of small tasks and caches I have had good luck with Redis and RQ. I have not personally used celery but I am fairly sure it would scale well, and I have not used RabbitMQ for anything besides communication between services. If you prefer python my suggestions should feel comfortable.
Sorry I do not have a more information
Pros of Celery
- Task queue97
- Python integration62
- Django integration38
- Scheduled Task29
- Publish/subsribe18
- Various backend broker7
- Easy to use6
- Workflow5
- Great community5
- Free4
- Dynamic1
Pros of Sidekiq
- Simple123
- Efficient background processing99
- Scalability60
- Better then resque37
- Great documentation26
- Admin tool15
- Great community14
- Integrates with redis automatically, with zero config8
- Great support7
- Stupidly simple to integrate and run on Rails/Heroku7
- Freeium3
- Ruby3
- Pro version2
- Fast1
- Dashboard w/live polling1
- Great ecosystem of addons1
Sign up to add or upvote prosMake informed product decisions
Cons of Celery
- Sometimes loses tasks4
- Depends on broker1