ronanchilvers / silex-queue-beanstalkd
Simple queue mechanism for silex using beanstalkd
Requires
- pda/pheanstalk: ^3.1
- silex/silex: ^2.2
Suggests
- knplabs/console-service-provider: @2.1 If you want to use the consume CLI command
This package is auto-updated.
Last update: 2024-12-10 21:27:18 UTC
README
This is a simple queue mechanism for Silex using Beanstalkd as the backend.
Installation
Installation using composer:
composer require ronanchilvers\silex-queue-beanstalkd
We're assuming that you have an accessible Beanstalkd instance running somewhere and that you know its network address.
Configuration
To use the queue service you need to register the provider like so:
$app->register(new Ronanchilvers\Silex\Queue\QueueProvider());
By default this assumes that Beanstalkd is running on the default port (11300) on localhost.
There are a few configuration directives that you can use to get the queue service working. You can pass these in using the normal Silex way like this:
$app->register(new Ronanchilvers\Silex\Queue\QueueProvider(), [ 'queue.options' => [ 'host' => '1.2.3.4' ] ]);
The available configuration keys are:
- host : Beanstalkd host (default localhost)
- port : Beanstalkd port (default 11300)
- timeout : Timeout for Beanstalkd connection (default 2 seconds). This option is passed directly through to Pheanstalk.
- persistent : Use a persistent connection to Beanstalkd or not (default false). This option is passed directly through to Pheanstalk.
- default.queue : default queue to push / pull to / from. The queue can be overridden at publish / consume time.
- max.iterations : maximum iterations a worker does when using the queue:consume CLI command before exiting
Consume Command
A simple consume command for use with symfony/console
is provided. The command requires the knplabs/console-service-provider
package as it needs access to the Application object. To use it you can do something like this:
$console->add(new Ronanchilvers\Silex\Queue\Console\Command\ConsumeCommand());
which will add a queue:consume command to the console application.