2017 © Pedro PelΓ‘ez
 

library rabbitmq

Queue manager. Based on AMQ protocol.

image

panace9i/rabbitmq

Queue manager. Based on AMQ protocol.

  • Saturday, April 28, 2018
  • by Panace9i
  • Repository
  • 1 Watchers
  • 0 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для быстрого старта с RabbitMQ

ΠžΠ±Ρ‰Π°Ρ информация

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° содСрТит Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ RabbitMQ. br/, (*1)

ИзмСнСния

ВСрсия Π”Π°Ρ‚Π° ИзмСнСния
dev-master 2017-11-13 Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Зависимости

  • PHP 5.6.0 ΠΈ Π²Ρ‹ΡˆΠ΅

Установка

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Composer:br/ Π‘ΠΎΠ·Π°Π΄ΠΉΡ‚Π΅ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» зависимостСй ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ конструкциСй, (*2)

{
  "require": {
    "panace9i/rabbitmq": "dev-master"
  }
}

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, (*3)

composer install

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ

Producer

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, (*4)

require "vendor/autoload.php";

use Panace9i\Queue\RabbitMQ\Producer\Adapter\Sync;

Panace9i\Queue\RabbitMQ\Config\Config::init()
  ->setHost('localhost')
  ->setPort(5672)
  ->setUser('guest')
  ->setPassword('guest');

$entity = new Sync();
$result = $entity->execute(<request_data_as_string>, <queue_name>);

...

Π‘ использованиСм Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ, (*5)

<?php
require "vendor/autoload.php";

use Panace9i\Queue\RabbitMQ\Producer\Factory AS ProducerFactory;

Panace9i\Queue\RabbitMQ\Config\Config::init()
  ->setHost('localhost')
  ->setPort(5672)
  ->setUser('guest')
  ->setPassword('guest');

$entity = ProducerFactory::getInstance(ProducerFactory::ADAPTER_SYNC);
$result = $entity->execute(<request_data_as_string>, <queue_name>);

...

Consumer

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, (*6)

<?php
require "vendor/autoload.php";

use Panace9i\Queue\RabbitMQ\Consumer\Adapter\Sync;
use Panace9i\Queue\RabbitMQ\Handler\HandlerAbstract;

Panace9i\Queue\RabbitMQ\Config\Config::init()
  ->setHost('localhost')
  ->setPort(5672)
  ->setUser('guest')
  ->setPassword('guest');

class SyncTest extends HandlerAbstract
{
    public function listen($request)
    {
        $params = $request->body;

        ...

        return $this->reply(<response_data_as_string>, $request);
    }
}

$entity = new Sync();
$entity->listen(<queue_name>, [new SyncTest, 'listen']);

Π‘ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ, (*7)

require "vendor/autoload.php";

use Panace9i\Queue\RabbitMQ\Consumer\Factory AS ConsumerFactory;
use Panace9i\Queue\RabbitMQ\Handler\HandlerAbstract;

Panace9i\Queue\RabbitMQ\Config\Config::init()
  ->setHost('localhost')
  ->setPort(5672)
  ->setUser('guest')
  ->setPassword('guest');

class SyncTest extends HandlerAbstract
{
    public function listen($request)
    {
        $params = $request->body;

        ...

        return $this->reply(<response_data_as_string>, $request);
    }
}

$entity = ConsumerFactory::getInstance(ConsumerFactory::ADAPTER_SYNC);
$entity->listen(<queue_name>, [new SyncTest, 'listen']);

Асинхронный Ρ€Π΅ΠΆΠΈΠΌ

Producer

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, (*8)

require "vendor/autoload.php";

use Panace9i\Queue\RabbitMQ\Producer\Adapter\Async;

Panace9i\Queue\RabbitMQ\Config\Config::init()
  ->setHost('localhost')
  ->setPort(5672)
  ->setUser('guest')
  ->setPassword('guest');

$entity = new Async();
$result = $entity->execute(<request_data_as_string>, <queue_name>);

...

Π‘ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ, (*9)

require "vendor/autoload.php";

use Panace9i\Queue\RabbitMQ\Producer\Factory AS ProducerFactory;

Panace9i\Queue\RabbitMQ\Config\Config::init()
  ->setHost('localhost')
  ->setPort(5672)
  ->setUser('guest')
  ->setPassword('guest');

$entity = ProducerFactory::getInstance(ProducerFactory::ADAPTER_ASYNC);
$entity->execute(<request_data_as_string>, <queue_name>);

...

Consumer

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, (*10)

require "vendor/autoload.php";

use Panace9i\Queue\RabbitMQ\Consumer\Adapter\Async;
use Panace9i\Queue\RabbitMQ\Handler\HandlerAbstract;

Panace9i\Queue\RabbitMQ\Config\Config::init()
  ->setHost('localhost')
  ->setPort(5672)
  ->setUser('guest')
  ->setPassword('guest');

class AsyncTest extends HandlerAbstract
{
    public function listen($request)
    {
        $params = $request->body;

        ...

        return $this->reply(<response_data_as_string>, $request);
    }
}

$entity = new Async();
$entity->listen(<queue_name>, [new AsyncTest, 'listen']);

Π‘ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ, (*11)

require "vendor/autoload.php";

use Panace9i\Queue\RabbitMQ\Consumer\Factory AS ConsumerFactory;
use Panace9i\Queue\RabbitMQ\Handler\HandlerAbstract;

Panace9i\Queue\RabbitMQ\Config\Config::init()
  ->setHost('localhost')
  ->setPort(5672)
  ->setUser('guest')
  ->setPassword('guest');

class AsyncTest extends HandlerAbstract
{
    public function listen($request)
    {
        $params = $request->body;

        ...

        return $this->reply(<response_data_as_string>, $request);
    }
}

$entity = ConsumerFactory::getInstance(ConsumerFactory::ADAPTER_ASYNC);
$entity->listen(<queue_name>, [new AsyncTest, 'listen']);

The Versions

28/04 2018

dev-master

9999999-dev

Queue manager. Based on AMQ protocol.

  Sources   Download

The Requires

 

by Baidin Sergei