Апдейтер поддерживает инкрементальное обновление справочника компаний (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
Рекомендации по загрузке инкрементов
- Запускайте
upload
инкрементальных справочников каждый день, чтобы не было пропусков. - Раз в неделю скачивайте и обновляйте полные справочники (
suggestions_party
иcdi_egrnorm
) вместо инкремента.