Beanstalkd in the wild (and a Scout plugin)
Beanstalkd is a simple, fast work queue. As its FAQ eloquently states, “beanstalkd is a big to-do list for your distributed application”. It’s commonly used to move intensive work out of the web request cycle and into the background.
Kevin Lawver of uPlaya has whipped up a Scout plugin for monitoring beanstalkd. At uPlaya, you upload a song and they tell if you if it has the potential to be a hit. 3 reasons why beanstalkd is great for uPlaya:
Eliminating long-running Cron jobs
uPlaya generates daily stats for songs, artists, widgets, etc. Instead of using long-running Cron jobs which could overlap and start causing database issues, the Cron jobs throw things into the queue and then run as many workers as possible to process the jobs during off-peak hours.
Beanstalkd does a great job of keeping the queue while not getting in the way. It does exactly what it’s supposed to and can hold a ton of jobs without using up a lot of memory or CPU.
This small footprint means it great for debugging and development as well – Kevin can dump millions of jobs to his laptop and beanstalkd doesn’t blink.
uPlaya can scale the number of workers up or down to fit their needs (where needs = number of jobs, capacity of hardware, etc) and they know that the jobs will eventually get done.
Installing the plugin
Like all Scout plugins, adding beanstalkd monitoring is a button click away. Just click the button when viewing a server on Scout. Beanstalkd is listed in our plugin directory.
- Beanstalkd homepage
- Nice explanation of Beanstalkd usage from Geoffrey Grosenbach
- Beanstalkd Scout Plugin