inblank / rabbit
Rabbitmq working
dev-master
2021-06-11 08:45 UTC
Requires
- php: ~7.4
- ext-amqp: *
- ext-json: *
- monolog/monolog: ~2.2.0
Requires (Dev)
- phpunit/phpunit: ~9.5.0
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2024-11-19 21:37:43 UTC
README
Пример запуска
<?php use inblank\rabbit\Connection; include_once 'vendor/autoload.php'; // 1. создаем подключение $rabbit = new Connection([ 'connection' => [ 'host' => 'rabbit', 'port' => 5672, 'login' => 'login', 'password' => 'pass' ], 'exchanges' => [ 'exchange' => [ 'type' => AMQP_EX_TYPE_DIRECT, 'flags' => AMQP_DURABLE, 'bind' => ['queue'] ], ], 'queues' => [ 'queue' => ['flags' => AMQP_DURABLE,] ] ]); // 2. отправка сообщения на обменник $rabbit->getExchange('exchange')->publish(['id'=>1, 'name'=>'Name']); // 3. получение сообщения из очереди $message = $rabbit->getQueue('queue')->get(); if ($message) { // сообщение получено, получаем его содержимое $value = $message->content(); if ($value['id']===1) { // подтверждаем обработку сообщения $message->ack(); } else { // ... или возвращаем в обработку $message->nack(); } }
Тесты
- Запускаем тестовый rabbit
$ docker-compose up -d rabbit
- Запускаем тесты
$ docker-compose run --rm php ./vendor/bin/phpunit
- Удаляем тестовое окружение
$ docker-compose down