mcfedr/sqs-queue-driver-bundle

This package is abandoned and no longer maintained. The author suggests using the mcfedr/queue-manager-bundle package instead.

A bundle for running symfony background tasks with SQS as the engine

Installs: 45 103

Dependents: 1

Suggesters: 0

Security: 0

Stars: 4

Watchers: 2

Forks: 4

Open Issues: 1

Type:symfony-bundle

3.5.0 2018-07-19 12:26 UTC

This package is auto-updated.

Last update: 2022-02-01 13:00:13 UTC


README

A driver for Queue Manager Bundle that uses Amazon SQS

Latest Stable Version License Build Status

Usage

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.

Install

Composer

composer require mcfedr/sqs-queue-driver-bundle

AppKernel

Include the bundle in your AppKernel

public function registerBundles()
{
    $bundles = [
        ...
        new Mcfedr\QueueManagerBundle\McfedrQueueManagerBundle(),
        new Mcfedr\SqsQueueDriverBundle\McfedrSqsQueueDriverBundle(),

Config

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 url
  • region required - The region where your queue is
  • credentials optional - Specify your key and secret This is optional because the SDK can pick up your credentials from a variety of places
  • queues 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

Options to QueueManager::put

  • url - A string with the url of a queue
  • queue - A string with the name of a queue in the config
  • time - A \DateTime object of when to schedule this job. Note: SQS can delay jobs up to 15 minutes
  • delay - Number of seconds from now to schedule this job. Note: SQS can delay jobs up to 15 minutes
  • visibilityTimeout - Number of seconds during which Amazon SQS prevents other consumers from receiving and processing the message.