splashx/notification-mq-bundle

Add queue's to notification bundle

Installs: 7

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Forks: 0

Type:symfony-bundle

v0.0.1 2018-09-13 07:28 UTC

This package is not auto-updated.

Last update: 2024-04-19 19:18:32 UTC


README

This extension provides the ability to send messages deferred

Usage

  • Install extention.
  • Configure AMQPStreamConnection connection:
    PhpAmqpLib\Connection\AMQPStreamConnection:
        autowire: true
        arguments:
          - '%rabbit_host%'
          - '%rabbit_port%'
          - '%rabbit_login%'
          - '%rabbit_pass%'
    
  • Configure MQClient:
    Splashx\NotificationQueueBundle\Driver\MQClient:
    arguments:
    - '%rabbit_queue%'
    - '%rabbit_consumer%'
    - '@PhpAmqpLib\Connection\AMQPStreamConnection'
    
  • Configure NotificationManager Decoration with:
    Splashx\NotificationQueueBundle\Model\NotificationManagerDecorator:
    decorates: 'symfony_bro.notification_core.notification_manager'
    arguments: ['@Splashx\NotificationQueueBundle\Model\NotificationManagerDecorator.inner']
    
  • In yours NotificationBuilder use MQNotificationDecorator notification type with argument notification object you need to send deffered.
    return new MQNotificationDecorator(new TelegramNotification([
      'chat_id' => '276316291',
      'fullName' => $context->getUserChangedPost()->getFullName(),
      'postTitle' => $context->getPost()->getTitle(),
      'template' => $template->getTemplate(),
    ]));
    
  • Configure comand with:
    splashx_notification_queue.command.mqread_queue_command:
    class: Splashx\NotificationQueueBundle\Command\MQReadQueueCommand
    arguments: ['@symfony_bro.notification_core.notification_manager', '@Splashx\NotificationQueueBundle\Driver\MQClient']
    tags:
    - { name: console.command }
    
  • Listen notification queue with MQnotifications:readQueue
  • Be happy!