Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Информация

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

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

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

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

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

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

Блок кода
languagejson
titleЗапрос на добавление в расписание на обновление всех справочников «Подсказок»
[
   {
      "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 соответственно


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

Блок кода
languagejson
titleЗапрос на добавление в расписание на обновление всех справочников «Фактора»
[
   {
      "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"
      ]
   }
]
Блок кода
languagejson
titleЗапрос на добавление в расписание на обновление всех справочников «Единого клиента»
[
   {
      "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 указываем любой один (т.к. Перекодер пока не умеет обновлять только указанные справочники, и все справочники загружаются одной и той же задачей):

Блок кода
languagejson
titleЗапрос на добавление в расписание на обновление всех справочников «Перекодера»
[
   {
      "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 задачи}

Чтобы регулярно скачивать и обновлять справочники, добавьте задачи в крон.

...

Если у вас версия 21.7 или раньше

Обновляйте справочники только последовательно, по одному за раз. Никогда не запускайте одновременно индексацию двух и более справочников. Для этого можно использовать паузы в скрипте, например:

Блок кода
./updater update suggestions_eas
sleep 30m ./updater update suggestions_ip
sleep 5m ./updater update suggestions_fio

В версиях 21.8+ можно запускать обновление одновременно — «Подсказки» все равно будут индексировать справочники последовательно.

...

titleОбратите внимание

...

Раскрыть
titleИнструкция

1. Отредактировать юнит файл крона /usr/lib/systemd/system/crond.service

Блок кода
languagebash
titlecrond.service
[Service]
UMask=0002

2. Перезагрузить список доступных сервисов, чтобы systemd мог управлять новым сервисом:

Блок кода
languagebash
systemctl daemon-reload

3. Перезагрузить сервис crond

Блок кода
languagebash
service crond restart

...

titleОбратите внимание

...

Блок кода
languagebash
ERROR err preparing to download: err invalid dictionary name

Вероятно .sh скрипт составляли на Windows и он сохранился со своими символами переноса строки. 
Проверить можно с помощью Notepad++, если в правом нижнем углу значение не Unix(LF), то необходимо преобразовать его (на скриншоте ниже)

...

titleИнструкция

...

Апдейтер установлен на сервере приложений

Пример для запуска обновления справочников «Подсказок», если утилита установлена на сервере приложений, а полный путь к утилите /opt/updater
Расписание:

Без форматирования
00 20 * * 4  cd /opt/updater && ./download-dictionaries-suggestions.sh

Скрипты:

Блок кода
languagebash
title/opt/updater/download-dictionaries-suggestions.sh
# Загрузка справочников Подсказок
./updater download suggestions_bank
./updater download suggestions_email
./updater download suggestions_fio  
./updater download suggestions_ip

./updater download suggestions_eas  
./updater download suggestions_geo #-------- Начиная с версии подсказок 20.4 обновляется совместно со справочником адресов
./updater download suggestions_house #------ Обновляется совместно со справочником адресов 
./updater download suggestions_iso3166 #---- Обновляется совместно со справочником адресов 
./updater download suggestions_address_foreign #-------- Доступен с версии подсказок 23.11 и заменяет справочники «geonames» и «osm». Дополнительно загружать «geonames» и «osm» в этом случае не нужно.
./updater download suggestions_geonames 
./updater download suggestions_osm 

./updater download suggestions_party 
./updater download suggestions_partyext #---- Обновляется совместно со справочником компаний 





# Обновление справочников Подсказок 
./updater update suggestions_bank 
./updater update suggestions_email  
./updater update suggestions_fio
./updater update suggestions_ip
  
./updater update suggestions_eas  
./updater update suggestions_flat #-------- Сам справочник загружается вместе со справочником адресов, отдельно грузить не нужно 
./updater update suggestions_stead #------- Сам справочник загружается вместе со справочником адресов, отдельно грузить не нужно  

./updater update suggestions_address_foreign #-------- Если версия подсказок с 23.11 и выше
./updater update suggestions_geonames  
./updater update suggestions_osm
  
./updater update suggestions_party

Для «Фактора» и «Единого клиента» аналогично добавить задачи в крон и создать скрипты:

Раскрыть
titleНастройка обновления по расписанию для «Фактора»

Расписание:

Без форматирования
00 20 * * 5  cd /opt/updater && ./download-dictionaries-factor.sh

Скрипты:

Блок кода
languagebash
title/opt/updater/download-dictionaries-factor.sh
# Загрузка справочников Фактора 
./updater download factor_dispemail 
./updater download factor_fias 
./updater download factor_flatarea 
./updater download factor_flatprice 
./updater download factor_geocode 
./updater download factor_invpassport 
./updater download factor_oktmo 
./updater download factor_rossvyaz 
./updater download factor_tld 
./updater download factor_transphone


# Обновление справочников Фактора 
./updater update factor_dispemail  
./updater update factor_fias  
./updater update factor_flatarea  
./updater update factor_flatprice  
./updater update factor_geocode  
./updater update factor_invpassport  
./updater update factor_oktmo  
./updater update factor_rossvyaz  
./updater update factor_tld  
./updater update factor_transphone
Раскрыть
titleНастройка обновления по расписанию для «Единого клиента»

Расписание:

Без форматирования
00 20 * * 6 cd /opt/updater && ./download-dictionaries-cdi.sh 

Скрипты:

Блок кода
languagebash
title/opt/updater/download-dictionaries-cdi.sh
# Загрузка справочников Единого клиента 
./updater download cdi_egr


# Обновление справочников Единого клиента 
./updater update cdi_egr

Апдейтер установлен на удаленном сервере

Пример для запуска обновления справочников «Подсказок», если утилита установлена на удаленном сервере, а полный путь к утилите /opt/updater
Расписание:

Без форматирования
00 20 * * 4  cd /opt/updater && ./download-dictionaries-suggestions.sh

Скрипты:

Блок кода
languagebash
title/opt/updater/download-dictionaries-suggestions.sh
# 192.168.0.1 — адрес сервера Подсказок
SUG=192.168.0.1


# Загрузка справочников Подсказок на сервер Апдейтера 
./updater download suggestions_bank
./updater download suggestions_email 
./updater download suggestions_fio
./updater download suggestions_ip 

./updater download suggestions_eas 
./updater download suggestions_geo 
./updater download suggestions_house 
./updater download suggestions_iso3166 
./updater download suggestions_geonames 
./updater download suggestions_osm
 
./updater download suggestions_party 
./updater download suggestions_partyext 




# Передача справочников Подсказок на сервер Подсказок 
./updater scp -H $SUG suggestions_bank 
./updater scp -H $SUG suggestions_ip
./updater scp -H $SUG suggestions_email 
./updater scp -H $SUG suggestions_fio

./updater scp -H $SUG suggestions_eas 
./updater scp -H $SUG suggestions_geo 
./updater scp -H $SUG suggestions_house 
./updater scp -H $SUG suggestions_iso3166 
./updater scp -H $SUG suggestions_geonames 
./updater scp -H $SUG suggestions_osm
 
./updater scp -H $SUG suggestions_party 
./updater scp -H $SUG suggestions_partyext 




# Удаленное обновление справочников Подсказок 
./updater update -H $SUG suggestions_bank
./updater update -H $SUG suggestions_email  
./updater update -H $SUG suggestions_fio
./updater update -H $SUG suggestions_ip  


./updater update -H $SUG suggestions_eas  
./updater update -H $SUG suggestions_flat  
./updater update -H $SUG suggestions_stead  
./updater update -H $SUG suggestions_geonames  
./updater update -H $SUG suggestions_osm
  
./updater update -H $SUG suggestions_party  

Для «Фактора» и «Единого клиента» аналогично добавить задачи в крон и создать скрипты:

Раскрыть
titleНастройка обновления по расписанию для «Фактора»

Расписание:

Без форматирования
00 20 * * 5  cd /opt/updater && ./download-dictionaries-factor.sh

Скрипты:

Блок кода
languagebash
title/opt/updater/download-dictionaries-factor.sh
# 192.168.0.2 — адрес сервера Фактора
FACTOR=192.168.0.2
# Загрузка справочников Фактора на сервер Апдейтера 
./updater download factor_dispemail 
./updater download factor_fias 
./updater download factor_flatarea 
./updater download factor_flatprice 
./updater download factor_geocode 
./updater download factor_invpassport 
./updater download factor_oktmo 
./updater download factor_rossvyaz 
./updater download factor_tld 
./updater download factor_transphone


# Передача справочников Фактора на сервер Фактора 
./updater scp -H $FACTOR factor_dispemail 
./updater scp -H $FACTOR factor_fias 
./updater scp -H $FACTOR factor_flatarea 
./updater scp -H $FACTOR factor_flatprice 
./updater scp -H $FACTOR factor_geocode 
./updater scp -H $FACTOR factor_invpassport 
./updater scp -H $FACTOR factor_oktmo 
./updater scp -H $FACTOR factor_rossvyaz 
./updater scp -H $FACTOR factor_tld 
./updater scp -H $FACTOR factor_transphone



# Удаленное обновление справочников Фактора 
./updater update -H $FACTOR factor_dispemail  
./updater update -H $FACTOR factor_fias  
./updater update -H $FACTOR factor_flatarea  
./updater update -H $FACTOR factor_flatprice  
./updater update -H $FACTOR factor_geocode  
./updater update -H $FACTOR factor_invpassport  
./updater update -H $FACTOR factor_oktmo  
./updater update -H $FACTOR factor_rossvyaz  
./updater update -H $FACTOR factor_tld  
./updater update -H $FACTOR factor_transphone

...

titleНастройка обновления по расписанию для «Единого клиента»

Расписание:

Без форматирования
00 20 * * 6 cd /opt/updater && ./download-dictionaries-cdi.sh 

Скрипты:

...

languagebash
title/opt/updater/download-dictionaries-cdi.sh

...