-
Notifications
You must be signed in to change notification settings - Fork 332
Home
Sneakers is a 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.
While running in production it has the same rolling update / hot reload semantics of Unicorn - you can also scale up workers live, scale down, and hot-reload your configuration.
It also has built in production-sane metrics, and logging.
While developing your solutions, it allows flexible configuration and pluggable alternative implementations for many of its internals.
You can either go and explore https://github.com/jondot/sneakers/wiki/_pages or follow this golden path:
- 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
- How To: Scrape Web Pages will connect the I/O bound story for you
- Configuration for the curious
By now you are probably wondering how to handle production.
- Failures will prepare you to the cruel world of background jobs
- How To: Rails Background Jobs for those of you wanting to integrate into Rails, or
- How To: Sinatra Background Jobs for Sinatra people.
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.