Сервис artixcs-external-campaigns
предназначен для отправки акций из Artix Loyalty Management в систему лояльности Mindbox.
Установка и настройка
Для работы с сервисом необходимо установить пакет artixcs-external-campaigns
командой:
sudo apt-get install artixcs-external-campaigns
Также сервис можно установить на отдельную машину, указав в настройках доступ к базе данных Artix Loyalty Management.
После установки сервис artixcs-external-campaigns
будет запущен автоматически.
Команды сервиса
Для управления сервисом используются следующие команды:
sudo service artixcs-external-campaigns start
– запустить сервис,sudo service artixcs-external-campaigns stop
– остановить сервис,sudo service artixcs-external-campaigns restart
– перезапустить сервиса,sudo service artixcs-external-campaigns status
– показать статус сервиса (запущен или остановлен).
Настройки сервиса
Настройка сервиса производится в конфигурационном файле /opt/artixcs-external-campaigns/application.properties
.
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
spring.data.mongodb.host | строковый | Хост для подключения к БД LM | По умолчанию localhost |
spring.data.mongodb.port | строковый | Порт для подключения к БД LM | По умолчанию 27017 |
spring.data.mongodb.database | строковый | Наименование БД в MongoDB | По умолчанию loyalty |
api.authorization | строковый | Секретный ключ подключения к Mindbox | По умолчанию Необходимо к значению по умолчанию добавить секретный ключ: Пример настройки Mindbox secretKey=BLjnSd5jaZ3R6ajaRpq8Nl0sutBhM3td |
Скрытые настройки | |||
scheduled.saveCron | строковый | Настройка расписания сохранения акций с LM по cron-выражению | По умолчанию" Данное cron-выражение содержит 6 полей:
В данном cron-выражении в поле "день недели" можно указывать "*". |
scheduled.sendCron | строковый | Настройка расписания отправки акций на Mindbox по cron-выражению | По умолчанию" Данное cron-выражение содержит 6 полей:
В данном cron-выражении в поле "день недели" можно указывать "*". |
mindbox.endpointId | строковый | Уникальный идентификатор сайта/мобильного приложения | По умолчанию |
mindbox.protocol | строковый | Протокол подключения к Mindbox | По умолчанию |
mindbox.url | строковый | URL подключения к Mindbox | По умолчанию |
mindbox.contextPath | строковый | Префикс URL для подключения к Mindbox | По умолчанию |
mindbox.operations | строковый | Название операции для запроса к Mindbox | По умолчанию |
mindbox.csvCodePage | строковый | Идентификатор кодовой страницы для CSV-файла для запроса к Mindbox | По умолчанию |
csvColumnDelimiter | строковый | Разделитель колонок в CSV-файле | По умолчанию |
spring.datasource.url=jdbc:h2:file:./db spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=netroot spring.datasource.password=netroot spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.jpa.defer-datasource-initialization=true spring.jpa.hibernate.ddl-auto=update spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.database=loyalty api.authorization=Mindbox secretKey= scheduled.saveCron=0 */30 * * * * scheduled.sendCron=0 */35 * * * * mindbox.endpointId=Stage2-ch-g.bookvoed-offline mindbox.protocol=https:// mindbox.url=api.mindbox.ru mindbox.contextPath=/v3/ mindbox.operations=DirectCrm.Promotions.Import mindbox.csvCodePage=65001
Принцип работы
Принцип работы сервиса заключается в выполнении двух расписаний.
По первому расписанию происходит сохранение всех активных акций из БД LM в файловую БД в таблицу Campaigns
.
scheduled.saveCron
с помощью cron-выражения.По второму расписанию происходит поиск акций для отправки в Mindbox с помощью сравнения таблиц Campaign
и CampaignDump
:
- если таблица
CampaignDump
не содержит акций, то из таблицыCampaign
в Mindbox будут отправлены все акции, - каждая последующая новая акция, сохраненная в таблицу
Campaign
, будет отправлена в Mindbox, - акции из таблицы
CampaignDump
, которые не содержатся в таблицеCampaign
, отмечаются как прерванные/измененные и отправляются на удаление.
scheduled.sendCron
с помощью cron-выражения.scheduled.saveCron
и scheduled.sendCron
. По умолчанию установлена задержка в 5 минут. Логирование
Файлы логов хранятся в директории /var/log/artix/artixcs-external-campaigns/artixcs-external-campaigns.log
.