Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

etkimbia's avatar

Beanstalkd standalone server

I have a web application where I'm using queues with beanstalkd. My architecture is like this:

  • 1 load balancer
  • multiple web servers
  • standalone server for beanstalkd and supervisord

For queueing, I've pointed my web servers to the internal IP of the standalone beanstalkd and supervisord servers and my queues are firing as expected. However, I have the following questions:

  1. Do I need to deploy my application code to my queue server in addition to my web servers?
  2. Related to my first question, what is the queue server actually doing? Is it only handling managing the queue or does it actually run code from my app when a queue is handled? Or, is the actually processing of the job — the code that runs when a job is called — handled by the web server? And if it's by the web server, with multiple servers, how is it decided which web server will process the job?
  3. I'm using forge - do I run add the queue job on my web application servers or just on the queue server?
  4. I know this depends on my application's needs, but for a moderately-sized application in terms of traffic, what's are good specs for a queue server? I'm using Linode.

Any information and guidance you can give me is greatly appreciated!

0 likes
2 replies
bashy's avatar

Whatever does Queue::listen() is what processes the queue. You need to have the code on matchine2 as well. But you can call the queue from machine1 so it executes on machine2

rvanbaalen's avatar

Have you been able to figure out your standalone beanstalkd server?

Please or to participate in this conversation.