Installation

Then, enable the module by adding SlmQueueBeanstalkd in your application.config.php file. You may also want to
configure the module: just copy the slm_queue_beanstalkd.local.php.dist (you can find this file in the config
folder of SlmQueueBeanstalkd) into your config/autoload folder, and override what you want., (*4)

Documentation

(Don't forget to first install Beanstalkd, and to run the daemon program on the server), (*6)

Setting the connection parameters

Copy the slm_queue_beanstalkd.local.php.dist file to your config/autoload folder, and follow the instructions., (*7)

Adding queues

SlmQueueBeanstalkd provides an interface for a queue that implements SlmQueue\Queue\QueueInterface and provides in
addition the following methods:, (*8)

release(JobInterface $job, array $options = array()): when a job fails, you can add the job again to the queue
by releasing it, so that it can have another chance to be executed.

bury(JobInterface $job, array $options = array()): when a job fails and that it has not been manually released, it
is automatically buried.

kick($max): when this method is called, it will move a maximum of $max buried jobs back to the queue.

A concrete class that implements this interface is included: SlmQueueBeanstalkd\Queue\BeanstalkdQueue and a factory is available to
create the queue. Therefore, if you want to have a queue called "email", just add the following line in your
module.config.php file:, (*9)

pop

Valid option is:, (*13)

timeout: by default, when we ask for a job, it will block until a job is found (possibly forever if new jobs never
come). If you set a timeout (in seconds), it will return after the timeout is expired, even if no jobs were found

release

Valid options are:, (*14)

priority: the lower the priority is, the sooner the job get popped from the queue (default to 1024)

delay: the delay in seconds before a job become available to be popped (default to 0 - no delay -)

bury

Valid option is:, (*15)

priority: the lower the priority is, the sooner the job get kicked

How to bury/release a job

Beanstalkd offers a nice bury/kick/release mechanism, so that jobs that fail can have a second chance to be executed.
SlmQueueBeanstalkd provides a nice way to easily bury/release a job. In fact, you just need to throw either
the SlmQueueBeanstalkd\Job\Exception\BuryableException or SlmQueueBeanstalkd\Job\Exception\ReleasableException in
the execute method of your job:, (*16)

Executing jobs

SlmQueueBeanstalkd provides a command-line tool that can be used to pop and execute jobs. You can type the following
command within the public folder of your Zend Framework 2 application:, (*17)

php index.php queue beanstalkd <queue> [--timeout=], (*18)

The queue is a mandatory parameter, while the timeout is an optional flag that specifies the duration in seconds
for which the call will wait for a job to arrive in the queue before returning (because the script can wait forever
if no job come)., (*19)