Download the PHP package proklung/bitrix.rabbitmq.module without Composer
On this page you can find all versions of the php package proklung/bitrix.rabbitmq.module. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download proklung/bitrix.rabbitmq.module
More information about proklung/bitrix.rabbitmq.module
Files in proklung/bitrix.rabbitmq.module
Package bitrix.rabbitmq.module
Short Description Поддержка RabbitMQ в Битриксе
License MIT
Homepage https://github.com/ProklUng/bitrix.rabbitmq.module
Informations about the package bitrix.rabbitmq.module
Форк пакета
Зачем?
Оригинальный модуль заточен под битриксовый сервис-локатор, а он встречается только на версиях главного модуля больше,
чем 20.5.400
. На моих проектах такой свежести нет, а функционал интересный и полезный.
Отличия
- Выпилил битриксовый сервис-локатор в пользу отдельного симфонического контейнера
- Исправил некоторое количество ошибок
- Добавлен отдельный раннер консольных команд
- Адаптирована работа с
RPC_Server
иRPC_Clients
- Адаптирована работа с
Anon consumer
- Адаптирована работа с
Batch consumer
- Внутренний контейнер кэшируется
.settings.php
модуля:
Параметр cache_path
- путь, куда ляжет скомпилированный контейнер. Если не задано, то по умолчанию /bitrix/cache/s1/proklung.rabbitmq
.
Предполагается, что в системе так или иначе установлена переменная среды DEBUG
в массиве $_ENV
. Если нет, то по умолчанию
полагается, что среда "отладочная".
Параметр (массив) compile_container_envs
указывает окружения, при которых необходимо кэшировать контейнер.
Пока простая логика: $_ENV["DEBUG"] === true
=> окружение dev
, иначе prod
.
Оригинальное readme.MD с некоторыми корректировками
О проекте
Модуль включает в себя обмен сообщениями в вашем php-приложении через RabbitMQ с использованием библиотеки php-amqplib.
Пакет реализует шаблоны обмена сообщениями, приведенными в библиотеке Thumper, что позволяет сделать публикацию сообщений в RabbitMQ из вашего контроллера очень простой:
Для получения 50-ти сообщений из очереди upload_pictures
, вы просто запускаете слушатель:
Данные примеры требуют запущенного сервера RabbitMQ.
Минимальные требования
php-7.1.3
или выше
Установка
Загрузите пакет, используя пакетный менеджер composer:
composer.json основного проекта:
Установите модуль proklung.rabbitmq
в административном интерфейсе сайта bitrix/admin/partner_modules.php
Добавьте следующий код в ваш init.php
:
Использование
Конфигурация идентична родительскому пакету. Настройка производится посредством правки файлов bitrix/.settings.php
и bitrix/.settings_extra.php
:
Пример обработчика сообщений:
Пример серверной части RPC сообщений (при опции клиента expect_serialized_response
равной false
):
Отправка запроса и получение ответа от RPC:
1) Запустить сервер командой php bin/rabbitmq bitrix-rabbitmq:rpc-server random_int
2) Код:
Интеграция с CLI
Доступны некоторые команды, которые упрощают работу:
rabbitmq:consumer
Executes a consumerrabbitmq:delete
Delete a consumer's queuerabbitmq:purge
Purge a consumer's queuerabbitmq:setup-fabric
Sets up the Rabbit MQ fabricrabbitmq:stdin-producer
Executes a producer that reads data from STDINrabbitmq:rpc-server
Start RPC server
В папке /install/bin
модуля лежит файл rabbitmq
. При установке модуля система попробует скопировать его в директорию,
bin
, лежащую двумя уровнями выше DOCUMENT_ROOT
. Если такой директории не существует, то сделано ничего не будет. Придется
создать папку руками и скопировать туда файл вручную.
Запуск:
Все доступные команды:
Адаптировано к Bitrix
- [x] Connection (Stream, Socket, Lazy, LazySocket)
- [x] Connection factory
- [x] Binding
- [x] Producer
- [x] Consumer
- [x] Parts holder
- [x] Fallback producer
- [ ] Multi-consumer
- [ ] Dynamic consumer
- [x] Batch consumer
- [x] Anon consumer
- [x] Rpc client
- [x] Rpc server
- [ ] Logged channel
Credits
Модуль и документация базируется на RabbitMqBundle. Там же вы можете найти подробную информацию о его использовании.
All versions of bitrix.rabbitmq.module with dependencies
composer/installers Version ~1
php-amqplib/php-amqplib Version ^2.12.1 || ^3
psr/log Version ^1.1.3
proklung/bitrix-containerable-boilerplate Version ^1.1
proklung/bitrix.module.boilerplate Version ^1.0
ext-json Version *