Sneakers is a high-performance background-job processing framework based on RabbitMQ.
It uses a hybrid process-thread model where many processes are spawned (like Unicorn) and many threads are used per process (like Puma), so all your cores max out and you have best of both worlds.
You can either go and explore https://github.com/jondot/sneakers/wiki/_pages or follow this golden path:
- Why I built it and what kind of problems Sneakers solve as opposed to other existing frameworks
- Performance for the immediate eyecandy
- How To: Do Log Processing will give you a general feel of the system
- Creating a Worker a little bit of a dive
- Publishing Messages our take on publishing
- How To: Scrape Web Pages will connect the I/O bound story for you
- Where is the UI? answers the immediate need for eyecandy
- Configuration for the curious
- RabbitMQ SaaS Providers various free and paid SaaS providers.
- Contributing is made easy as pie.
- The road to Sneakers 0.1.x, see how you can migrate from
0.0.xin a snap.
By now you are probably wondering how to handle production.
- Failures and Retry will prepare you to the cruel world of background jobs
- How To: Running a stand-alone worker shows a modular architecture for your workers, using Foreman
- How To: Rails Background Jobs for those of you wanting to integrate into Rails, or
- How To: Sinatra Background Jobs for Sinatra people.
- Metrics, what does it mean with Sneakers
- Message handling semantics, the defaults in Sneakers and how to replace them if you want
- Messaging pitfalls and crazy things you should know that might happen, regardless of you using Sneakers or not
- Handling different workloads with multiple worker groups
And for some more technicalities (or performance),
- Auto scaling will show you a useful Sneakers feature with which you can expand and contract your worker pool.
- Running with Sneakers for those of you wanting to integrate a Sneakers runner programmatically.
- Eager loading in threaded context