🔗Beanstalkd

Beanstalkd is 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 run them. https://github.com/kr/beanstalkd/wiki/FAQ

🔗High availability

Put the instances behind a load balancer, HAProxy and run beanstalk with option -b:

beanstalkd -b /home/beanstalkd/queue

/home/beanstalkd/queue needs to be an existing directory

The option -b will write all jobs to a binlog, if the power goes out, you can restart beasntalkd with the same option and it will recover the contents of the log.

🔗immortalizing beanstalkd

cmd: beanstalkd -V -b /home/beanstalkd/queue
log:
  file: /var/log/beanstalkd.log
  age: 86400
  num: 7
  size: 1

🔗port 11300

Beanstalkd by default listen on port 11300