Сервис 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=

Необходимо к значению по умолчанию добавить секретный ключ:

Пример настройки
Mindbox secretKey=BLjnSd5jaZ3R6ajaRpq8Nl0sutBhM3td

Скрытые настройки

scheduled.saveCronстроковыйНастройка расписания сохранения акций с LM по cron-выражению

По умолчанию"0 */30 * * * *"

Данное cron-выражение содержит 6 полей:

  • секунда,
  • минута,
  • час,
  • число месяца,
  • месяц,
  • день (дни) недели.

В данном cron-выражении в поле "день недели" можно указывать "*".

scheduled.sendCronстроковыйНастройка расписания отправки акций на Mindbox по cron-выражению

По умолчанию"0 */35 * * * *"

Данное cron-выражение содержит 6 полей:

  • секунда,
  • минута,
  • час,
  • число месяца,
  • месяц,
  • день (дни) недели.

В данном cron-выражении в поле "день недели" можно указывать "*".

mindbox.endpointIdстроковыйУникальный идентификатор сайта/мобильного приложения

По умолчанию Stage2-ch-g.bookvoed-offline

mindbox.protocolстроковыйПротокол подключения к Mindbox

По умолчанию https://

mindbox.urlстроковыйURL подключения к Mindbox

По умолчанию api.mindbox.ru

mindbox.contextPathстроковыйПрефикс URL для подключения к Mindbox

По умолчанию /v3/

mindbox.operationsстроковыйНазвание операции для запроса к Mindbox

По умолчанию DirectCrm.Promotions.Import

mindbox.csvCodePageстроковыйИдентификатор кодовой страницы для CSV-файла для запроса к Mindbox

По умолчанию 65001

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, отмечаются как прерванные/измененные и отправляются на удаление.
Расписание отправки акций в Mindbox настраивается параметром scheduled.sendCron с помощью cron-выражения.
Между выполнением расписаний должен быть выдержан определенный интервал времени, необходимо учитывать это при изменении графика в настройках scheduled.saveCron и scheduled.sendCron. По умолчанию установлена задержка в 5 минут. 

Логирование

Файлы логов хранятся в директории /var/log/artix/artixcs-external-campaigns/artixcs-external-campaigns.log.

  • No labels