Инструмент mqpusher предназначен для передачи данных из различных источников в одну очередь RabbitMQ. Также есть возможность выполнить скрипт на языке JavaScript для каждой строки данных перед отправкой их в очередь. На данный момент поддерживаются следующие источники:
- CSV-файл
- JSON-файл (один объект JSON на строку)
- множество JSON-файлов (каждый файл — один объект JSON; имя файла — requestId)
- SQL-запросы для базы данных PostgreSQL
- очередь RabbitMQ
Настройка утилиты задается через файл конфигурации, например conf/config.yml
. Ограничений на количество типов источников в конфигурации нет. Выбор источника данных осуществляется посредством его указания в соответствующей опции команды publish.
Чтобы сгенерировать файл конфигурации рядом с исполняемым файлом утилиты mqpusher, необходимо выполнить следующую команду:
mqpusher generate-config
# Для этой команды также доступны следующие алиасы: gen-cfg, generate-cfg, gen-config
Для запуска утилиты mqpusher в режиме публикации данных в очередь, необходимо выполнить следующую команду:
mqpusher publish [options...]
Для команды publish доступны следующие опции:
--source string, -s string Тип источника данных для публикации (доступные значения: csv, json, db, rmq)
--filepath string, -f string Путь до файла выбранного источника данных (используется для csv и json источников)
--script string Путь до файла со скриптом преобразования данных на JavaScript
--log-interval string Интервал прогресса логирования (пример: 15s)
--sep string Переопределение разделителя для csv файла
--log-msg, -l Включить логирование публикуемых в очередь сообщений
--sync Включить синхронную публикацию данных в целевую очередь
--plain-text Включает режим отправки 'plainText': вычитка и отправка данных из источника происходят 'как есть', минуя десериализацию. Данный режим принудительно отключает выполнение скрипта (используется для json и rmq источников).
- Некоторые настройки конфигурации могут быть переопределены с помощью вышеуказанных опций.
- Для публикации множества JSON-файлов укажите в опции filepath путь к директории с ними.