Апдейтер поддерживает инкрементальное обновление справочника компаний (suggestions_party и cdi_egrnorm). Инкременты — это ежесуточные обновления, которые содержат только то, что поменялось за прошедшие сутки. Благодаря этому они, как правило, небольшие, и загружаются в течение нескольких минут. В редких случаях, если налоговая внесла много изменений за сутки, инкремент может быть сопоставим по размеру и времени загрузки с полным справочником.

Справочники с инкрементом называются suggestions_partyinc и cdi_egrnorminc. Скачиваются и загружаются аналогично полному справочнику:

curl -X POST -u username:password -d '{"dictionary":"suggestions_partyinc", "node":"suggestions-prod"}' http://updaterHost:port/updater/upload

curl -X POST -u username:password -d '{"dictionary":"cdi_egrnorminc", "node":"cdi-prod"}' http://updaterHost:port/updater/upload

В журнале «Подсказок» suggestions.log загрузка инкремента выглядит так:

10.04.2021/06:12:19 127.0.0.1#anonymous - - (ResourceManagementMediator-159) [INFO] (IndexManager)
Process egr from '/opt/suggestions/dictionaries/party/egr-sgt-20210410-bson-inc.dic' (10.04.2021 00:00:00)
10.04.2021/06:12:27 127.0.0.1#anonymous - - (ResourceManagementMediator-159) [INFO] (AsyncIndexModifier)
-- Index egr entities in 2 threads
10.04.2021/06:12:38 127.0.0.1#anonymous - - (ResourceManagementMediator-159) [INFO] (AsyncIndexModifier)
-- Indexing egr entities took: 11.73 s, modified: 78908, removed: 373. Average speed: 7207.364 records/sec
10.04.2021/06:12:39 127.0.0.1#anonymous - - (ResourceManagementMediator-159) [INFO] (IndexManager)
Processing egr completed at 20.10 s

Инкременты поддерживаются только для компаний. Для адресов и прочих справочников инкрементов нет.

Как загружаются инкременты

Задача upload скачивает самый свежий инкремент (для CDI сначала узнает текущую в приложении, после чего скачивает все недостающие). После чего пытается загрузить все инкременты, которые скачаны на данный момент. Например, в такой ситуации:

ls -1 /opt/suggestions/dictionaries/party/
egr-sgt-20210404-bson-inc.dic
egr-sgt-20210405-bson-inc.dic
egr-sgt-20210406-bson-inc.dic
egr-sgt-20210407-bson-inc.dic
egr-sgt-20210408-bson-inc.dic

upload последовательно загрузит инкременты за 4–8 апреля. Если какие-то из них уже были загружены, upload их проигнорирует.

Если какого-то инкремента не хватает, более новые инкременты не смогут загрузиться. Например, в такой ситуации:

ls -1 /opt/suggestions/dictionaries/party/
egr-sgt-20210404-bson-inc.dic
egr-sgt-20210405-bson-inc.dic
# пропущен инкремент за 06.04
egr-sgt-20210407-bson-inc.dic
egr-sgt-20210408-bson-inc.dic

upload загрузит только инкременты за 4–5 апреля, после чего остановится. В журнале suggestions.log при этом будут записи вида:

09.04.2021/06:12:19 127.0.0.1#anonymous - - (ResourceManagementMediator-159) [INFO] (IncrementResourceDescriptor)
INCREMENT egr '/data/dictionaries/party/egr-sgt-20210407-bson-inc.dic' (07.04.2021 00:00:00)
ignored because of invalid export hash: new = 53725f673bf6e23e30e0b3e30d59bf82, current = 4575048c53809f57c6ef39fe7bf664eb

09.04.2021/06:12:19 127.0.0.1#anonymous - - (ResourceManagementMediator-159) [INFO] (IncrementResourceDescriptor)
INCREMENT egr '/data/dictionaries/party/egr-sgt-20210408-bson-inc.dic' (08.04.2021 00:00:00)
ignored because of invalid export hash: new = ccbc8ad003527ecdb4129516890e381a, current = 4575048c53809f57c6ef39fe7bf664eb

«Апдейтер» запоминает какие в этот раз загрузил справочники и очищает их при следующей загрузке инкремента. Поэтому не требуется отдельно настраивать задачи очистки инкрементальных справочников.

Рекомендации по загрузке инкрементов

  1. Запускайте upload инкрементальных справочников каждый день, чтобы не было пропусков.
  2. Раз в неделю скачивайте и обновляйте полные справочники (suggestions_party и cdi_egrnorm) вместо инкремента.
  • Нет меток