PHPackages                             catalinh/qpush-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. catalinh/qpush-bundle

ActiveLibrary[Queues &amp; Workers](/categories/queues)

catalinh/qpush-bundle
=====================

Asynchronous processing for Symfony using Push Queues

1.0.1(6y ago)016.5kApache-2.0PHPPHP &gt;=5.6.0

Since Dec 17Pushed 6y agoCompare

[ Source](https://github.com/CatalinH/qpush-bundle)[ Packagist](https://packagist.org/packages/catalinh/qpush-bundle)[ Docs](https://github.com/catalinh/qpush-bundle)[ RSS](/packages/catalinh-qpush-bundle/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)Dependencies (14)Versions (3)Used By (0)

QPush - Symfony2 Push Queue Bundle
==================================

[](#qpush---symfony2-push-queue-bundle)

[![Build Status](https://camo.githubusercontent.com/d5466ecc0c3962567325e834789d1fa921f91141fb8f443a6ff093af72cc0a2a/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f7565636f64652f71707573682d62756e646c652f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/uecode/qpush-bundle)[![Quality Score](https://camo.githubusercontent.com/72b678e9e815963feff1e4b17a6d1c0a540b823c56d5b94018463a27cdf6460e/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f7565636f64652f71707573682d62756e646c652e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/uecode/qpush-bundle/)[![Code Coverage](https://camo.githubusercontent.com/e29f4452a2dad9de711ad00ba4a00edda5c8dc8077c1bb56e3e7d6fb11560d9a/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f7565636f64652f71707573682d62756e646c652e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/uecode/qpush-bundle/)[![Total Downloads](https://camo.githubusercontent.com/606b11f6bd748e3ddd3183c511a171531fd94df3a5a02f6145d6f99c3ce6f837/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7565636f64652f71707573682d62756e646c652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/uecode/qpush-bundle)

Overview
--------

[](#overview)

This bundle allows you to easily consume messages from Push Queues by simply tagging your services and relying on Symfony's event dispatcher - without needing to run a daemon or background process to continuously poll your queue.

**Full Documentation:** [qpush-bundle.readthedocs.org](http://qpush-bundle.rtfd.org)

Installation
------------

[](#installation)

#### The bundle should be installed through composer.

[](#the-bundle-should-be-installed-through-composer)

```
composer require uecode/qpush-bundle

```

#### Update AppKernel.php of your Symfony Application

[](#update-appkernelphp-of-your-symfony-application)

Add the `UecodeQPushBundle` to your kernel bootstrap sequence, in the `$bundles`array.

```
public function registerBundles()
{
    $bundles = array(
        // ...
        new Uecode\Bundle\QPushBundle\UecodeQPushBundle(),
    );

    return $bundles;
}
```

Basic Configuration:
--------------------

[](#basic-configuration)

Here is a basic configuration that would create a push queue called `my_queue_name` using AWS or IronMQ. You can read about the supported providers and provider options in the [full documentation](http://qpush-bundle.rtfd.org).

###### Example

[](#example)

```
#app/config.yml

uecode_qpush:
    providers:
        ironmq:
            token:      YOUR_IRON_MQ_TOKEN_HERE
            project_id: YOUR_IRON_MQ_PROJECT_ID_HERE
        aws:
            key:    YOUR_AWS_KEY_HERE
            secret: YOUR_AWS_SECRET_HERE
            region: YOUR_AWS_REGION_HERE
    queues:
        my_queue_key:
            provider: ironmq #or aws
            options:
                queue_name: my_queue_name #optional. the queue name used on the provider
                push_notifications: true
                subscribers:
                    - { endpoint: http://example.com/qpush, protocol: http }
```

You may exclude aws key and secret to default to IAM role on the EC2 machine.

Publishing messages to your Queue
---------------------------------

[](#publishing-messages-to-your-queue)

Publishing messages is simple - fetch the registered Provider service from the container and call the `publish` method on the respective queue.

This bundle stores your messages as a json object and the publish method expects an array, typically associative.

###### Example

[](#example-1)

```
// src/My/Bundle/ExampleBundle/Controller/MyController.php

public function publishAction()
{
    $message = ['foo' => 'bar'];

    // fetch your provider service from the container
    $this->get('uecode_qpush')->get('my_queue_key')->publish($message);

    // you can also fetch it directly
    $this->get('uecode_qpush.my_queue_key')->publish($message);
}
```

Working with messages from your Queue
-------------------------------------

[](#working-with-messages-from-your-queue)

When a message hits your application, this bundle will dispatch a `MessageEvent`which can be handled by your services. You need to tag your services to handle these events.

###### Example

[](#example-2)

```
services:
    my_example_service:
    	class: My\Bundle\ExampleBundle\Service\ExampleService
    	tags:
    		- { name: uecode_qpush.event_listener, event: my_queue_key.message_received, method: onMessageReceived }
```

###### Example

[](#example-3)

```
// src/My/Bundle/ExampleBundle/Service/ExampleService.php

use Uecode\Bundle\QPushBundle\Event\MessageEvent;

public function onMessageReceived(MessageEvent $event)
{
    $queue_name = $event->getQueueName();
    $message    = $event->getMessage();

    // do some processing
}
```

The `Message` objects contain the provider specific message id, a message body, and a collection of provider specific metadata.

These properties are accessible through simple getters from the message object.

###### Example

[](#example-4)

```
// src/My/Bundle/ExampleBundle/Service/ExampleService.php

use Uecode\Bundle\QPushBundle\Event\MessageEvent;
use Uecode\Bundle\QPushBundle\Message\Message;

public function onMessageReceived(MessageEvent $event)
{
    $id         = $event->getMessage()->getId();
    $body       = $event->getMessage()->getBody();
    $metadata   = $event->getMessage()->getMetadata();

    // do some processing
}
```

### Cleaning up the Queue

[](#cleaning-up-the-queue)

Once all other Event Listeners have been invoked on a `MessageEvent`, the Bundle will automatically attempt to remove the Message from your Queue for you.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

2340d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2e84f9e5ff1ba2b492c039fb73049a458d87551fd160f576bed7cb4c59de167a?d=identicon)[catalinh](/maintainers/catalinh)

---

Top Contributors

[![CatalinH](https://avatars.githubusercontent.com/u/37758?v=4)](https://github.com/CatalinH "CatalinH (1 commits)")

---

Tags

symfonybundleawspushqpushpub-subasynchiron mq

### Embed Badge

![Health badge](/badges/catalinh-qpush-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/catalinh-qpush-bundle/health.svg)](https://phpackages.com/packages/catalinh-qpush-bundle)
```

###  Alternatives

[uecode/qpush-bundle

Asynchronous processing for Symfony using Push Queues

1682.4M2](/packages/uecode-qpush-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[cmsig/seal-symfony-bundle

An integration of CMS-IG SEAL search abstraction into Symfony Framework.

15195.8k5](/packages/cmsig-seal-symfony-bundle)[webfactory/icu-translation-bundle

Enables ICU message formatting for translations in Symfony applications.

2761.8k](/packages/webfactory-icu-translation-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
