SlideShare a Scribd company logo
1 of 26
Download to read offline
WORK QUEUE 
SYSTEMS
MOTIVATIONS 
Do work in the background 
Parallelize tasks 
Distribute work among many machines
DESIGN CONSIDERATIONS 
Expect failure and design accordingly (process crashes, 
machine reboots, network partition) 
Break work into small, bite-size tasks 
Idempotency: ensure nothing bad will happen if your job runs 
multiple times
WORK DISTRIBUTION 
STRATEGIES
SINGLE MACHINE 
Distribute work to multiple worker threads or forked worker 
processes. 
Can easily parallelize work, but jobs go away if the process 
restarts 
Cannot distribute work to multiple machines this way 
IPC (Inter-Process Communication) is difficult to do right 
Big no-no for web apps (you want to offload work to a 
separate machine)
MULTIPLE MACHINES 
Distribute work to workers on other machines directly over the 
network 
Ruby’s DRb can distribute work, but is unstable under high 
load 
A dedicated messaging system can be used to distribute work 
reliably 
Jobs are (usually) not persistent so can be lost if something 
crashes
PERSISTENT QUEUE 
Workers pull jobs from a persistent backend queue 
Suitable when many jobs need to be queued up and worked 
over time 
Jobs can still be lost if workers crash or database hiccups 
“Reliable” queueing can recover jobs if workers crash
CAPABILITIES OF A (GOOD) 
WORK QUEUE SYSTEM
RETRIES 
Things go wrong all the time. You want jobs to be automatically 
retried.
RELIABILITY 
Messages / Jobs should never be lost.
SCHEDULING 
Schedule a job to run at a certain time instead of running 
immediately.
STATUS 
Report back to the application on the job’s completion 
percentage and whether it succeeded or failed.
PRIORITY 
If your queue fills up, important jobs might be waiting in the back 
of the queue. A priority queue allows important jobs to go to the 
top so they can be executed ASAP.
TYPES OF QUEUING BACKENDS
DEDICATED QUEUING SYSTEM 
Backend built specifically for the purpose of queueing 
Natively supports desired properties of queues 
Gearman: One of the originals. Out of date, not as fully-features 
as modern alternatives 
Beanstalkd: Very fully featured and well-maintained
GENERAL­PURPOSE 
DATABASE 
Simple to use if you’re already using a standard database 
May not scale to massive / high-throughput workloads 
SQL: May have locking / concurrency issues 
Document Store: Probably won’t provide reliability 
Redis: Swiss-Army Knife of key-value stores, used by Resque 
and Sidekiq. Everything has to fit in memory.
MESSAGING SYSTEM 
Provides generic message-passing capabilities (queues are 
just a special case) 
Very scalable and high-throughput 
Can be very complex to set up and use (topics, consumers, 
exchanges, brokers, OH MY) 
ActiveMQ, RabbitMQ, ZeroMQ, HornetQ 
- distributed Apache Kafka commit log
BATCH PROCESSING SYSTEM 
MapReduce on huge volumes of data 
Apache Hadoop 
Apache Spark 
Amazon Elastic MapReduce - hosted Hadoop
REALTIME PROCESSING 
SYSTEM 
Continual stream of input (firehose), need results within 
seconds or minutes 
Apace Storm
THIRD PARTY SERVICE 
- reliable message queue service 
IronMQ / IronWorker 
Amazon SQS: Scalable, but very bare-bones (lacks good Ruby 
worker client)
RUBY WORK QUEUE LIBRARIES 
A backend isn’t very useful without a good worker library to run 
the jobs. Often the library can provide capabilities that the 
backend does not.
RESQUE VS SIDEKIQ 
Resque forks workers, Sidekiq uses threads via Celluloid 
Both use Redis for the backend and are mostly compatible 
with each other 
Very fully featured (often via a separate gem) 
Both come with web UI to make it easier to monitor job status 
Sidekiq has a performance edge, and Sidekiq Pro offers 
reliability and batches
DELAYED JOB 
Uses Active Record, so easy to plug into existing Rails app 
Fairly well supported in the community 
Alternatives that take advantage of PostgreSQL advanced 
features: Queue Classic, Que, Toro
IN­MEMORY 
Sucker Punch and Threaded In Memory Queue run workers in 
the same process (in background threads) and distribute the 
jobs directly to these workers.
HONORABLE MENTIONS 
Sneakers - RabbitMQ 
Backburner - Beanstalkd 
TorqueBox Backgroundable (JRuby-only) 
Qu - Supports multiple backends (Redis, MongoDB, SQS). Not 
as well maintained or fully-featured.
ADAPTERS 
You may want to change queueing backends / libraries without 
rewriting all your jobs. 
MultiWorker - Adapts all the libraries mentioned in this 
presentation 
ActiveJob - Built into Rails 4.2.0 (beta), but can be used as a 
separate gem

More Related Content

What's hot

iMobileMagic Teck Talk Scale Up
iMobileMagic Teck Talk Scale UpiMobileMagic Teck Talk Scale Up
iMobileMagic Teck Talk Scale Up
Pedro Machado
 
Scalable Web Architectures: Common Patterns and Approaches
Scalable Web Architectures: Common Patterns and ApproachesScalable Web Architectures: Common Patterns and Approaches
Scalable Web Architectures: Common Patterns and Approaches
adunne
 

What's hot (20)

Benefits of Cassandra
Benefits of CassandraBenefits of Cassandra
Benefits of Cassandra
 
Mule quartz hari_gatadi
Mule quartz hari_gatadiMule quartz hari_gatadi
Mule quartz hari_gatadi
 
Cumminsallison.com
Cumminsallison.comCumminsallison.com
Cumminsallison.com
 
iMobileMagic Teck Talk Scale Up
iMobileMagic Teck Talk Scale UpiMobileMagic Teck Talk Scale Up
iMobileMagic Teck Talk Scale Up
 
The Matrix and DataStax
The Matrix and DataStaxThe Matrix and DataStax
The Matrix and DataStax
 
Java scalability considerations yogesh deshpande
Java scalability considerations   yogesh deshpandeJava scalability considerations   yogesh deshpande
Java scalability considerations yogesh deshpande
 
Cloud computing & lamp applications
Cloud computing & lamp applicationsCloud computing & lamp applications
Cloud computing & lamp applications
 
An Introduction To Space Based Architecture
An Introduction To Space Based ArchitectureAn Introduction To Space Based Architecture
An Introduction To Space Based Architecture
 
Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?
Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?
Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?
 
Immutable infrastructure with Terraform
Immutable infrastructure with TerraformImmutable infrastructure with Terraform
Immutable infrastructure with Terraform
 
Tech Talk Series, Part 4: How do you achieve high availability in a MySQL env...
Tech Talk Series, Part 4: How do you achieve high availability in a MySQL env...Tech Talk Series, Part 4: How do you achieve high availability in a MySQL env...
Tech Talk Series, Part 4: How do you achieve high availability in a MySQL env...
 
Modern Cloud Fundamentals: Misconceptions and Industry Trends
Modern Cloud Fundamentals: Misconceptions and Industry TrendsModern Cloud Fundamentals: Misconceptions and Industry Trends
Modern Cloud Fundamentals: Misconceptions and Industry Trends
 
Couch base
Couch baseCouch base
Couch base
 
Microservices patterns in Serverless
Microservices patterns in ServerlessMicroservices patterns in Serverless
Microservices patterns in Serverless
 
Scalable Web Architectures: Common Patterns and Approaches
Scalable Web Architectures: Common Patterns and ApproachesScalable Web Architectures: Common Patterns and Approaches
Scalable Web Architectures: Common Patterns and Approaches
 
Spark 101 - First steps to distributed computing
Spark 101 - First steps to distributed computingSpark 101 - First steps to distributed computing
Spark 101 - First steps to distributed computing
 
Cassandra Bootstrap from Backups
Cassandra Bootstrap from BackupsCassandra Bootstrap from Backups
Cassandra Bootstrap from Backups
 
MuleSoft ESB Composite Source
MuleSoft ESB Composite SourceMuleSoft ESB Composite Source
MuleSoft ESB Composite Source
 
Using ansible to manage cloud stack
Using ansible to manage cloud stackUsing ansible to manage cloud stack
Using ansible to manage cloud stack
 
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless DreamsRainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
Rainbows, Unicorns, and other Fairy Tales in the Land of Serverless Dreams
 

Similar to Work Queue Systems

Microsoft Openness Mongo DB
Microsoft Openness Mongo DBMicrosoft Openness Mongo DB
Microsoft Openness Mongo DB
Heriyadi Janwar
 
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYCScalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Cal Henderson
 
Oracle Database 12c "New features"
Oracle Database 12c "New features" Oracle Database 12c "New features"
Oracle Database 12c "New features"
Anar Godjaev
 
03 net saturday anton samarskyy ''document oriented databases for the .net pl...
03 net saturday anton samarskyy ''document oriented databases for the .net pl...03 net saturday anton samarskyy ''document oriented databases for the .net pl...
03 net saturday anton samarskyy ''document oriented databases for the .net pl...
DneprCiklumEvents
 

Similar to Work Queue Systems (20)

SQL and NoSQL in SQL Server
SQL and NoSQL in SQL ServerSQL and NoSQL in SQL Server
SQL and NoSQL in SQL Server
 
AWS Cloud SAA Relational Database presentation
AWS Cloud SAA Relational Database presentationAWS Cloud SAA Relational Database presentation
AWS Cloud SAA Relational Database presentation
 
MongoDB
MongoDBMongoDB
MongoDB
 
Microsoft Openness Mongo DB
Microsoft Openness Mongo DBMicrosoft Openness Mongo DB
Microsoft Openness Mongo DB
 
Nosql seminar
Nosql seminarNosql seminar
Nosql seminar
 
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYCScalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
 
PASS Summit 2020
PASS Summit 2020PASS Summit 2020
PASS Summit 2020
 
Cloudera Impala - Las Vegas Big Data Meetup Nov 5th 2014
Cloudera Impala - Las Vegas Big Data Meetup Nov 5th 2014Cloudera Impala - Las Vegas Big Data Meetup Nov 5th 2014
Cloudera Impala - Las Vegas Big Data Meetup Nov 5th 2014
 
NOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
NOSQL Meets Relational - The MySQL Ecosystem Gains More FlexibilityNOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
NOSQL Meets Relational - The MySQL Ecosystem Gains More Flexibility
 
Fundamental Paradigms for Java Developers: NoSQL and OSGI
Fundamental Paradigms for Java Developers: NoSQL and OSGIFundamental Paradigms for Java Developers: NoSQL and OSGI
Fundamental Paradigms for Java Developers: NoSQL and OSGI
 
Front Range PHP NoSQL Databases
Front Range PHP NoSQL DatabasesFront Range PHP NoSQL Databases
Front Range PHP NoSQL Databases
 
AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09AWS (Hadoop) Meetup 30.04.09
AWS (Hadoop) Meetup 30.04.09
 
Percona Live 2014 - Scaling MySQL in AWS
Percona Live 2014 - Scaling MySQL in AWSPercona Live 2014 - Scaling MySQL in AWS
Percona Live 2014 - Scaling MySQL in AWS
 
NoSQL
NoSQLNoSQL
NoSQL
 
RDS for MySQL, No BS Operations and Patterns
RDS for MySQL, No BS Operations and PatternsRDS for MySQL, No BS Operations and Patterns
RDS for MySQL, No BS Operations and Patterns
 
Oracle Database 12c "New features"
Oracle Database 12c "New features" Oracle Database 12c "New features"
Oracle Database 12c "New features"
 
Big Data Streams Architectures. Why? What? How?
Big Data Streams Architectures. Why? What? How?Big Data Streams Architectures. Why? What? How?
Big Data Streams Architectures. Why? What? How?
 
Reactive programming intro
Reactive programming introReactive programming intro
Reactive programming intro
 
Stream Computing (The Engineer's Perspective)
Stream Computing (The Engineer's Perspective)Stream Computing (The Engineer's Perspective)
Stream Computing (The Engineer's Perspective)
 
03 net saturday anton samarskyy ''document oriented databases for the .net pl...
03 net saturday anton samarskyy ''document oriented databases for the .net pl...03 net saturday anton samarskyy ''document oriented databases for the .net pl...
03 net saturday anton samarskyy ''document oriented databases for the .net pl...
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Recently uploaded (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 

Work Queue Systems

  • 2. MOTIVATIONS Do work in the background Parallelize tasks Distribute work among many machines
  • 3. DESIGN CONSIDERATIONS Expect failure and design accordingly (process crashes, machine reboots, network partition) Break work into small, bite-size tasks Idempotency: ensure nothing bad will happen if your job runs multiple times
  • 5. SINGLE MACHINE Distribute work to multiple worker threads or forked worker processes. Can easily parallelize work, but jobs go away if the process restarts Cannot distribute work to multiple machines this way IPC (Inter-Process Communication) is difficult to do right Big no-no for web apps (you want to offload work to a separate machine)
  • 6. MULTIPLE MACHINES Distribute work to workers on other machines directly over the network Ruby’s DRb can distribute work, but is unstable under high load A dedicated messaging system can be used to distribute work reliably Jobs are (usually) not persistent so can be lost if something crashes
  • 7. PERSISTENT QUEUE Workers pull jobs from a persistent backend queue Suitable when many jobs need to be queued up and worked over time Jobs can still be lost if workers crash or database hiccups “Reliable” queueing can recover jobs if workers crash
  • 8. CAPABILITIES OF A (GOOD) WORK QUEUE SYSTEM
  • 9. RETRIES Things go wrong all the time. You want jobs to be automatically retried.
  • 10. RELIABILITY Messages / Jobs should never be lost.
  • 11. SCHEDULING Schedule a job to run at a certain time instead of running immediately.
  • 12. STATUS Report back to the application on the job’s completion percentage and whether it succeeded or failed.
  • 13. PRIORITY If your queue fills up, important jobs might be waiting in the back of the queue. A priority queue allows important jobs to go to the top so they can be executed ASAP.
  • 14. TYPES OF QUEUING BACKENDS
  • 15. DEDICATED QUEUING SYSTEM Backend built specifically for the purpose of queueing Natively supports desired properties of queues Gearman: One of the originals. Out of date, not as fully-features as modern alternatives Beanstalkd: Very fully featured and well-maintained
  • 16. GENERAL­PURPOSE DATABASE Simple to use if you’re already using a standard database May not scale to massive / high-throughput workloads SQL: May have locking / concurrency issues Document Store: Probably won’t provide reliability Redis: Swiss-Army Knife of key-value stores, used by Resque and Sidekiq. Everything has to fit in memory.
  • 17. MESSAGING SYSTEM Provides generic message-passing capabilities (queues are just a special case) Very scalable and high-throughput Can be very complex to set up and use (topics, consumers, exchanges, brokers, OH MY) ActiveMQ, RabbitMQ, ZeroMQ, HornetQ - distributed Apache Kafka commit log
  • 18. BATCH PROCESSING SYSTEM MapReduce on huge volumes of data Apache Hadoop Apache Spark Amazon Elastic MapReduce - hosted Hadoop
  • 19. REALTIME PROCESSING SYSTEM Continual stream of input (firehose), need results within seconds or minutes Apace Storm
  • 20. THIRD PARTY SERVICE - reliable message queue service IronMQ / IronWorker Amazon SQS: Scalable, but very bare-bones (lacks good Ruby worker client)
  • 21. RUBY WORK QUEUE LIBRARIES A backend isn’t very useful without a good worker library to run the jobs. Often the library can provide capabilities that the backend does not.
  • 22. RESQUE VS SIDEKIQ Resque forks workers, Sidekiq uses threads via Celluloid Both use Redis for the backend and are mostly compatible with each other Very fully featured (often via a separate gem) Both come with web UI to make it easier to monitor job status Sidekiq has a performance edge, and Sidekiq Pro offers reliability and batches
  • 23. DELAYED JOB Uses Active Record, so easy to plug into existing Rails app Fairly well supported in the community Alternatives that take advantage of PostgreSQL advanced features: Queue Classic, Que, Toro
  • 24. IN­MEMORY Sucker Punch and Threaded In Memory Queue run workers in the same process (in background threads) and distribute the jobs directly to these workers.
  • 25. HONORABLE MENTIONS Sneakers - RabbitMQ Backburner - Beanstalkd TorqueBox Backgroundable (JRuby-only) Qu - Supports multiple backends (Redis, MongoDB, SQS). Not as well maintained or fully-featured.
  • 26. ADAPTERS You may want to change queueing backends / libraries without rewriting all your jobs. MultiWorker - Adapts all the libraries mentioned in this presentation ActiveJob - Built into Rails 4.2.0 (beta), but can be used as a separate gem