Сервис отправки сообщений предназначен для рассылки сообщений через telegram-бот и СМС шлюз по номеру телефона.

Установка и настройка сервиса

Для работы сервиса должны быть установлены пакеты java-11-artix, artixcs-apt-config и artix-postgresql-config.

Установка сервиса производится командой:

apt-get install artixcs-messaging-service

Настройка работы сервиса осуществляется в конфигурационном файле /opt/artixcs-messaging-service/application.properties.

В качестве БД сервиса artixcs-messaging-service допускается использование только Postgresql.

НаименованиеТип данныхОписаниеПримечания
server.portцелочисленныйПорт сервисаПо умолчанию 12023
queue settings
Настройки для подключения к БД очереди сообщений

queue.database.nameстроковыйНаименование базы данныхПо умолчанию messaging_db.
В случае изменения наименования базы данных необходимо создать БД с таким же наименованием
queue.database.hostстроковыйХост базы данныхПо умолчанию localhost
queue.database.userстроковыйИмя пользователяПо умолчанию netroot
queue.database.passwordстроковыйПароль пользователяПо умолчанию netroot
queue.database.port целочисленныйПортПо умолчанию 5432
queue.handler.countцелочисленныйКоличество обработчиков очереди рассылки сообщений

По умолчанию 5.

Чем больше – тем быстрее будет обрабатываться очередь и расти вычислительные затраты машины

queue.retry.max_attemptsцелочисленныйКоличество попыток отправки сообщения в случае неудачиПо умолчанию 5
queue.retry.random_delay.start_range.minutesцелочисленныйМинимальное количество минут через которое будет возможна новая попытка отправки сообщенияПо умолчанию 5
queue.retry.random_delay.end_range.minutesцелочисленныйМаксимальное количество минут через которое будет возможна новая попытка отправки сообщения

По умолчанию 10.

В случае неудачной попытки отправить сообщение новое сообщение будет отправлено в интервале от 5 (queue.retry.random_delay.start_range.minutes) до 10 (queue.retry.random_delay.end_range.minutes) минут, время в этом интервале выбирается случайно

persistence settings


Настройки для подключения к БД сервиса Если БД очереди сообщений установлена на одной машине с сервисом, то настройки должны совпадать с аналогичными настройками из секции queue settings
storage.database.hostстроковыйХост базы данныхПо умолчанию localhost
storage.database.portцелочисленныйПортПо умолчанию 5432
storage.database.nameстроковыйНаименование базы данныхПо умолчанию messaging_db.
В случае изменения наименования базы данных необходимо создать БД с таким же наименованием
storage.database.userстроковыйИмя пользователяПо умолчанию netroot
storage.database.passwordстроковыйПароль пользователяПо умолчанию netroot
telegram settingsНастройки подключения к telegram-боту
messages.telegram.bot.connection.hostстроковыйХост для подключения к telegram-ботуПо умолчанию 127.0.0.1
messages.telegram.bot.connection.portцелочисленныйПорт для подключения к telegram-ботуПо умолчанию 3300
messages.telegram.bot.connection.pathстроковыйURL для доступа к telegram-ботуПо умолчанию bot
sms settingsНастройки подключения к кассовому серверу для получения настроек СМС шлюзов
messages.sms.cashserver.connection.hostстроковыйХост для подключения к СМС шлюзу на кассовом сервереПо умолчанию 127.0.0.1
messages.sms.cashserver.connection.portцелочисленныйПорт для подключения к СМС шлюзу на кассовом сервереПо умолчанию 38051
messages.sms.cashserver.connection.pathстроковыйURL для доступа к СМС шлюзу на кассовом сервереПо умолчанию CSrest/rest/v2/properties/find/sms/property/templates/by/key
messages.sms.cashserver.connection.timeout.userстроковыйИмя пользователя для доступа к СМС шлюзу на кассовом сервереПо умолчанию admin
messages.sms.cashserver.connection.timeout.passwordстроковыйПароль пользователя для доступа к СМС шлюзу на кассовом сервереПо умолчанию admin
messages.sms.cashserver.connection.cache.time_live_secцелочисленный

Частота запросов к кассовому серверу для получения настроек СМС шлюзов

По умолчанию раз в 60 секунд.

Настройки подключения к СМС шлюзу при успешном получении с кассового сервера кэшируются на 60 секунд. Если по истечении 60 секунд не получены настройки с кассового сервера, то используются последние актуальные настройки (те, которые были закэшированы в памяти). 


Пример настройки
server.port = 12023

# queue settings
queue.database.name = messaging_db
queue.database.host = localhost
queue.database.user = netroot
queue.database.password = netroot
queue.database.port = 5432

queue.handler.count = 5
queue.retry.max_attempts = 5
queue.retry.random_delay.start_range.minutes = 5
queue.retry.random_delay.end_range.minutes = 10

# persistence settings
storage.database.host = localhost
storage.database.port = 5432
storage.database.name = messaging_db
storage.database.user = netroot
storage.database.password = netroot

# telegram settings
messages.telegram.bot.connection.host = 127.0.0.1
messages.telegram.bot.connection.port = 3300
messages.telegram.bot.connection.path = bot

# sms settings
messages.sms.cashserver.connection.host = 127.0.0.1
messages.sms.cashserver.connection.port = 38051
messages.sms.cashserver.connection.path = CSrest/rest/v2/properties/find/sms/property/templates/by/key
messages.sms.cashserver.connection.timeout.user = admin
messages.sms.cashserver.connection.timeout.password = admin
messages.sms.cashserver.connection.cache.time_live_sec = 60

Принцип работы

Сервис отправляет сообщения по принципу рассылки с негарантированной доставкой:

  1. Для каждой рассылки создается задача (БД Messaging_db таблица mailing_tasks):
  2. Сообщение помещается в очередь (БД Messaging_db таблица messaging_queue).
  3. В случае неудачной попытки отправить сообщение через некоторое время будет выполнена повторная отправка.
  4. После превышения максимального количества допустимых попыток отправки (настройка queue.retry.max_attempts) сообщение удаляется из очереди (см. "Установка и настройка сервиса").

Результаты рассылки записываются в БД Messaging_db таблицу mailing_results.

Логирование работы сервиса

Логирование работы сервиса ведется в файле /var/log/artix/artixcs-messaging-service/artixcs-messaging-service.log.

  • No labels