A driver for Queue Manager Bundle that uses Amazon SQS
The sqs runner is a Symfony command. You can runner multiple instances if you need to handle higher numbers of jobs.
./bin/console mcfedr:queue:{name}-runner
Where {name}
is what you used in the config. Add -v
or more to get detailed logs.
composer require mcfedr/sqs-queue-driver-bundle
Include the bundle in your AppKernel
public function registerBundles()
{
$bundles = [
...
new Mcfedr\QueueManagerBundle\McfedrQueueManagerBundle(),
new Mcfedr\SqsQueueDriverBundle\McfedrSqsQueueDriverBundle(),
With this bundle installed you can setup your queue manager config similar to this:
mcfedr_queue_manager:
managers:
default:
driver: sqs
options:
default_url: https://sqs.eu-west-1.amazonaws.com/...
region: eu-west-1
credentials:
key: 'my-access-key-id'
secret: 'my-secret-access-key'
queues:
name: https://sqs.eu-west-1.amazonaws.com/...
name2: https://sqs.eu-west-1.amazonaws.com/...
This will create a QueueManager
service named "mcfedr_queue_manager.default"
default_url
- Default SQS queue urlregion
required - The region where your queue iscredentials
optional - Specify your key and secret This is optional because the SDK can pick up your credentials from a variety of placesqueues
optional - Allows you to setup a mapping of short names for queues, this makes it easier to use multiple queues and keep the config in one place
url
- Astring
with the url of a queuequeue
- Astring
with the name of a queue in the configtime
- A\DateTime
object of when to schedule this job. Note: SQS can delay jobs up to 15 minutesdelay
- Number of seconds from now to schedule this job. Note: SQS can delay jobs up to 15 minutesvisibilityTimeout
- Number of seconds during which Amazon SQS prevents other consumers from receiving and processing the message.