Полезный сторонний сервис, чтобы правильно писать кроны — crontab.guru
Для указания воскресенья использовать 0 или Sun, 7-ка не поддерживается.
Для регулярной загрузки и обновления справочников необходимо добавить задачи в расписание.
Параметры задачи
| Название | Описание |
|---|---|
| Идентификатор задачи (назначается системой, при добавлении новой задачи указывать не нужно) |
| Выполняемая операция:
|
| Имя конфигурации продукта, прописанного в .yaml |
| Расписание (в виде крон выражения) |
| Нужно ли принудительно обновлять справочник (напр на более старую версию) (по умолчанию false) |
| Перечень справочников |
Задачи загрузки справочников (download и upload) включают в себя также очистку директории от старых файлов на финальном этапе выполнения. Поэтому дополнительно настраивать очистку по расписанию методом cleanup не требуется
Добавление задач в расписание
Для этого нужно добавить задачи с помощью API сервиса 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
|
Удаление задачи из расписания
А чтобы удалить задачу из расписания необходимо отправить DELETE запрос в API сервиса schedule с указанием ID задачи
|