Полезный сторонний сервис, чтобы правильно писать кроны — crontab.guru 

Для указания воскресенья использовать 0 или Sun, 7-ка не поддерживается.

Для регулярной загрузки и обновления справочников необходимо добавить задачи в расписание.

Параметры задачи

НазваниеОписание

id

Идентификатор задачи (назначается системой, при добавлении новой задачи указывать не нужно)

task

Выполняемая операция:

  • download — загрузка справочника
  • upload — загрузка и обновление справочника

node

Имя конфигурации продукта, прописанного в .yaml

schedule

Расписание (в виде крон выражения)

force

Нужно ли создавать директории под справочники, при их отсутствии? (по умолчанию false)

dictionaries

Перечень справочников

Добавление задач в расписание 

Для этого нужно добавить задачи с помощью API сервиса schedule

curl -X POST -u username:password -d '<Запрос>' http://updaterHost:port/schedule

Запрос на добавление в расписание на обновление всех справочников «Подсказок»
[
   {
      "task":"upload",
      "node":"suggestions_prod",
      "schedule":"00 20 * * 4",
      "dictionaries":[
         "suggestions_bank",
         "suggestions_email",
         "suggestions_fio",
         "suggestions_ip",
         "suggestions_eas",
         "suggestions_address_foreign",
         "suggestions_party"
      ]
   }
]

Обратите внимание, для основного справочника адресов suggestions_eas необходимость обновления вспомогательных (geo, house, iso3166) и зависимых справочников (stead, flat) настраивается в файле конфигурации справочников dictionaries.json  — поля secondary_tags и dependent_tags соответственно


Для «Фактора» и «Единого клиента» аналогично, изменив названия справочников и расписание

Запрос на добавление в расписание на обновление всех справочников «Фактора»
[
   {
      "task":"upload",
      "node":"factor_prod",
      "schedule":"00 20 * * 5",
      "dictionaries":[
         "factor_dispemail",
         "factor_fias",
         "factor_flatarea",
         "factor_flatprice",
         "factor_geocode",
         "factor_oktmo",
         "factor_rossvyaz",
         "factor_tld",
         "factor_transphone"
      ]
   }
]
Запрос на добавление в расписание на обновление всех справочников «Единого клиента»
[
   {
      "task":"upload",
      "node":"cdi_prod",
      "schedule":"00 20 * * 6",
      "dictionaries":[
         "cdi_egrnorm"
      ]
   },
{
      "task":"upload",
      "node":"cdi_prod",
      "schedule":"00 08 * * *",
      "dictionaries":[
         "cdi_egrnorminc"
      ]
   }
]

Для «Перекодера» необходимо добавить 2 расписания: первое на загрузку всех справочников и второе на запуск обновления через время, достаточное для загрузки и доставки всех справочников. В download мы указываем все справочники из необходимых 12, а в upload указываем любой один (т.к. Перекодер пока не умеет обновлять только указанные справочники, и все справочники загружаются одной и той же задачей):

Запрос на добавление в расписание на обновление всех справочников «Перекодера»
[
   {
      "task":"download",
      "node":"rdm_prod",
      "schedule":"00 20 * * 6",
      "dictionaries":[
         "rdm_country",
         "rdm_currency",
         "rdm_fms_unit",
         "rdm_fns_unit",
         "rdm_metro",
         "rdm_okpd2",
         "rdm_oktmo",
         "rdm_okved2",
         "rdm_postal_unit",
         "rdm_okfs",
         "rdm_okopf",
         "rdm-bic"
      ]
   },
{
      "task":"upload",
      "node":"rdm_prod",
      "schedule":"10 20 * * 6",
      "dictionaries":[
         "rdm-bic"
      ]
   }
]

Просмотр текущих задач в расписании

Для вывода списка текущих задач необходимо отправить GET запрос в API сервиса schedule

curl -X GET -u username:password http://updaterHost:port/schedule

Удаление задачи из расписания

А чтобы удалить задачу из расписания необходимо отправить DELETE запрос в API сервиса schedule с указанием ID задачи 

curl -X DELETE -u username:password http://updaterHost:port/schedule/{ID задачи}


  • Нет меток