2017 © Pedro Peláez
 

library queue-module

image

v3knet/queue-module

  • Monday, September 28, 2015
  • by andytruong
  • Repository
  • 1 Watchers
  • 0 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 6 Versions
  • 0 % Grown

The README.md

Queue module Build Status

With this module, we can put the message to queue, process the message using consumer., (*1)

1. Let the module know your queue

use atsilex\module\Module;
use atsilex\module\system\events\AppEvent;
use Pimple\Container;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Bernard\Message\DefaultMessage;

class MyModule extends Module {
    public function subscribe(Container $container, EventDispatcherInterface $dispatcher) {
        $dispatcher->addListener('queue.queues.get', function (AppEvent $event) {
            $queues = $event->getSubject();
            $queues['my_module.demo_queue'] = DefaultMessage::class;
        });
    }
}

Then your queue is listed on:, (*2)

php public/index.php v3k:queue:list

2. Produce message

use atsilex\module\system\ModularAp;
use Bernard\Message\DefaultMessage;

$msg = new DefaultMessage('my_module.demo_queue, ['foo' => 'bar']);
$app['bernard.producer']->produce($msg);

3. Process the message

We need to teach consumer how to route our message:, (*3)

use atsilex\module\Module;
use atsilex\module\system\events\AppEvent;
use Bernard\Router\SimpleRouter;
use Bernard\Message\DefaultMessage;
use Pimple\Container;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;

class MyModule extends Module {
    public function subscribe(Container $container, EventDispatcherInterface $dispatcher) {
        // …
        $dispatcher->addListener('queue.router.create', function (AppEvent $event) {
            $router = $event->getSubject();
            $router->add('my_module.demo_queue', function (ImportMessage $m) use ($c) {
                // Logic to process the message
            });
        });
    }
}

The message can now be routed correctly, now to process the message, just call the consume command:, (*4)

php public/index.php v3k:queue:process my_module.demo_queue

The Versions