ЛК: портфель ДЕПО «для всех клиентов» — одно соединение и один запрос к DEPO, свой цикл раз в 5 мин; итог в настройках свёрнут
На 9 после включения «для всех» (23.10.2026) каждый проход открывал по два соединения с DEPO на каждый из 1158 договоров — около 50 входов в MSSQL в секунду без перерыва, а проход шёл в цикле опроса заявок ЛК и задерживал его. - Остатки всех клиентов — одним запросом (fsql.Dp03), одно соединение с DEPO на проход; по списку — запрос по клиенту на том же соединении. На боевой DEPO: общий запрос 127 мс, совпадает с запросом по клиенту (58 договоров). - Свой цикл lkPortfolioLoop (здоровье «lk-portfolio»): по списку — каждые 10 с, для всех клиентов — раз в 5 мин. Опрос заявок ЛК больше не ждёт. - Проходы по очереди: фоновый и «Заполнить сейчас» не шлют один портфель дважды; принудительный проход пропускает отправленные за последнюю минуту. - ЛК не отвечает — проход прерывается; одна и та же ошибка отправки не повторяется в журнале каждый проход. Ошибка чтения DEPO снимается, когда портфель снова читается без изменений. - Настройки: итог (договоров, отправлено, нечего отправлять, с ошибкой), последние 5 отправок; договоры с ошибкой и все договоры — под раскрытием. «Отправлять нечего» — не ошибка (поле Nothing). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -288,6 +288,7 @@ func (s *Server) Run(ctx context.Context) error {
|
||||
// Монитор здоровья + systemd watchdog: следит за фоновыми горутинами,
|
||||
// поднимает алерт при зависании и «пинает» systemd, пока всё живо.
|
||||
healthRegister("poll-lk", time.Minute)
|
||||
healthRegister("lk-portfolio", 2*time.Minute) // проход «для всех клиентов» — до 4 мин без отметки
|
||||
// Ключ продлеваем до запуска фоновых циклов: режим разработки (имитации и т.п.) должен быть
|
||||
// известен им с первого прохода.
|
||||
if licenseNeedsRenew(s.rc) {
|
||||
@@ -338,6 +339,8 @@ func (s *Server) Run(ctx context.Context) error {
|
||||
// Поллер заявок ЛК ЕСИА Финанс: раз в минуту забирает новые depo_m2m и
|
||||
// отправляет в НРД (или имитатору). Интервал 1 мин — время ответов регламентировано.
|
||||
go superviseLoop(ctx, "poll-lk", s.rc, s.pollLKClaims)
|
||||
// Портфели ДЕПО из DEPO в ЛК: по списку — каждые 10 с, для всех клиентов — раз в 5 мин.
|
||||
go superviseLoop(ctx, "lk-portfolio", s.rc, s.lkPortfolioLoop)
|
||||
|
||||
// Авто-обновление справочника участников M2M раз в сутки (только реальный
|
||||
// ИШ). Тик суточный — в heartbeat-монитор не регистрируем, только recover.
|
||||
|
||||
Reference in New Issue
Block a user