Introduction
Beanstalkd is a simple, fast work queue.
Its interface is generic, and it was originally designed for reducing the latency of page views in high-volume web applications by running time-consuming tasks asynchronously.
You can think of beanstalkd
as a big "to-do" list for your distributed application. If there is a unit of work that you want to defer to later (say, sending an email, pushing some data to a slow external service, pulling data from a slow external service, generating high-quality image thumbnails) you put a description of that work, a "job", into beanstalkd
. Some processes (such as web request handlers), "producers", put jobs into the queue. Other processes, "workers", take jobs out of the queue and process them.
See Protocol for details.