Настройка интеграции с ФГИС АРШИН

а вы не могли бы описать алгоритм который вы планируете сделать? Я просто так и эдак тестировал их апи, и теперь в гугл таблицах успешно обновляется поверка… может смогу что-то посоветовать…

Здесь я описал что мы собираемся сделать.

Вкратце:

  1. Поиск будет выполняться не по связке Название модели + Серийный номер, а по связке Номер модели в реестре СИ + Серийный номер. Это уже должно ускорить поиск и снизить до минимума ложные срабатывания.
  2. Для всех моделей мы прописали все возможные номера в реестре СИ, чтобы синхронизация работала для всех поддерживаемых моделей.
  3. Если у модели несколько номеров в реестре, поиск выполняется по всем номерам.
  4. Помимо номера в модели, можно будет вручную указать номер СИ в реестре для конкретного экземпляра оборудования. Это позволит ускорить поиск. В предыдущем пункте описано, что поиск выполняется по всем номерам. Но если номер задан в конкретном экземпляре устройства, берётся только он.
  1. Добавлена обработка ошибки 429. После получения мы увеличиваем паузу между запросами и повторяем поиск. Пауза увеличивается вплоть до 2 минут.

вместо обработки ошибки 429 я не отправляю запрос по следующему экземпляру до получения ответа на предыдущий запрос. Так же добавил таймаут ожидания ответа на запрос в 2 минуты. Получилось вроде бы надёжно, все запросы на протяжении недели успешные.

Мы тоже отправляем запросы последовательно, дожидаясь ответа. 429 может возникать если их отправлять слишком часто. Такую ситуацию мы предусмотрели. В 3.49 синхронизация должна работать надёжнее.

и всё же предлагаю добавить кнопку ручного запуска синхронизации в АРМ(пусть временно), куда-нибудь сюда:

1 лайк

И как то проглядел то, что не озвучили ваше мнение по поводу:

Какой год будет в запросе для приборов у которых не указана дата прошлой поверки ? Какой будет в запросе у приборов с просроченной поверкой?

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

Пожалуйста, давайте дождёмся начала испытаний 3.49. Там будет уже понятно как работают новые алгоритмы и какие изменения нужно внести.

  • Ограничение в 3 года сделано дабы защитить от информации о предыдущих поверках? Не страшно - эти данные реальны, хоть и не актуальны. Вынудит лишний раз перепроверить и выявить недостаток алгоритма. Зато на текущий момент отдыхают все СИ с интервалами 6+ лет(электросчётчики бывают с интервалами 12+ лет)
  • Почему интервал в 7 дней? ежедневная проверка перед началом рабочего дня - вот что нам нужно. Приборы ходят в ремонт и поверка обновляется.

P.S. позвольте настроить глубину опроса к релизу. Это по сути единственная критическая проблема на текущий момент.

Для большинства пользователей этих параметров будет достаточно. К релизу мы дадим возможность настройки, но не через системные параметры, а через Lers.Server.xml или переменные среды.

Например,так как вы используете Docker, вы сможете в docker-compose.yml в секцию lers/environment добавить параметры:

Название Назначение
SearchYears За сколько лет система будет запрашивать результаты проверки для каждого устройства.
MinDays Периодичность синхронизации если не получены данные о поверке.
MinDaysBeforeScheduledCalibration За сколько дней до планируемой поверки начинать синхронизацию.

Настроить можно будет так:

services:
  lers:
    environment:
      LERS_SERVER_Tasks__Arshin__SearchYears: 10
      LERS_SERVER_Tasks__Arshin__MinDays: 1

это лишнее. Необходимо ежедневно перепроверять всё оборудование. Оно могло побывать в ремонте и быть досрочно поверено.

Не согласен. У нас в базе 11000 устройств. Без таких ограничений проверка никогда не заканчивается и выходит по таймауту. Есть пользователи и с гораздо большими базами.

возможно это тоже вынести в настройку? а там будем смотреть, пробовать…
хотя, если установить LERS_SERVER_Tasks__Arshin__MinDays: 4380 я по сути получу желаемое ?

Да, можете поставить большое значение.