Проверка связи M2M (запрос справочника) — раз в час вместо 10 мин, плюс кнопка

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-22 15:16:26 +03:00
parent 52fb43e02f
commit cfc97787d0
4 changed files with 6 additions and 6 deletions
+3 -3
View File
@@ -4,7 +4,7 @@ package lkgateway
// пути, у каждого своё доказательство работы:
// - Шлюз: ИШ отвечает bj (igwwatch.go);
// - НРД: шлюз успешно опрашивает НРД — по журналу ИШ (nsdlinkwatch.go);
// - M2M: сквозная проверка — раз в 10 минут bj запрашивает у НРД справочник участников (#M2MHR)
// - M2M: сквозная проверка — раз в час и по кнопке «Проверить связь сейчас» bj запрашивает у НРД справочник участников (#M2MHR)
// и ждёт ответ #M2MTH: он проходит весь путь до сервиса M2M и обратно;
// - Отправка: подтверждение доставки каждого пакета (igw.WithDeliveryHook) и недоставленные переводы.
// Отсутствие ошибок само по себе не считается «работает»: нет свежего подтверждения — жёлтый.
@@ -27,7 +27,7 @@ import (
)
const (
nsdProbeEvery = 10 * time.Minute
nsdProbeEvery = time.Hour // 22.10.2026: было 10 мин — лишняя нагрузка на НРД; живость между проверками видна по журналу ИШ
nsdProbeWarnAfter = 3 * time.Minute // ответа на проверку нет 3 мин — жёлтый
nsdProbeErrAfter = 10 * time.Minute // 10 мин — красный
nsdPollErrAfter = 3 * time.Minute // шлюз получает от НРД ошибки 3 мин — красный (до этого жёлтый)
@@ -294,7 +294,7 @@ func (s *Server) sendNSDProbe(ctx context.Context) {
}
}
// nsdHealthLoop — проверка раз в 10 мин, история раз в минуту, автоповтор недоставленных.
// nsdHealthLoop — проверка раз в час, история раз в минуту, автоповтор недоставленных.
func (s *Server) nsdHealthLoop(ctx context.Context) {
healthRegister("nsd-health", 3*time.Minute)
nsdHistoryLoad()
+1 -1
View File
@@ -332,7 +332,7 @@ type HandbookEntry struct {
}
// saveHandbook раскладывает справочник в плоский список и пишет в файл. Возвращает, изменился ли
// состав: справочник запрашивается раз в 10 минут (сквозная проверка связи, nsdhealth.go), и без
// состав: справочник запрашивается раз в час (сквозная проверка связи, nsdhealth.go), и без
// изменений его не нужно ни рассылать, ни переписывать в DEPO.
func saveHandbook(hb *m2m.M2MTransferHandbook) (changed bool) { return saveHandbookEx(hb, true) }
+1 -1
View File
@@ -340,7 +340,7 @@ func (s *Server) Run(ctx context.Context) error {
// Авто-обновление справочника участников M2M раз в сутки (только реальный
// ИШ). Тик суточный — в heartbeat-монитор не регистрируем, только recover.
go superviseLoop(ctx, "nsd-health", s.rc, s.nsdHealthLoop) // связь с НРД: проверка раз в 10 мин (справочник), история, автоповтор
go superviseLoop(ctx, "nsd-health", s.rc, s.nsdHealthLoop) // связь с НРД: проверка раз в час (справочник), история, автоповтор
// QUIK МНП: автоматический цикл M2M (регистрация до отправки — хук в
// SendBuiltRequest; подпись/снятие/зачисление по MS010 — опросчик).
@@ -13,7 +13,7 @@
<td><span class="nsd-dot {{.State}}"></span></td>
<td><strong>{{.Title}}</strong></td>
<td>{{.Text}}{{with .Detail}}<br><code>{{.}}</code>{{end}}</td>
<td class="muted" style="font-size:12.5px">{{if eq .Key "igw"}}bj обращается к шлюзу каждые 30 с{{else if eq .Key "nsd"}}журнал шлюза: ответы НРД на опросы входящих{{else if eq .Key "m2m"}}раз в 10 мин запрос справочника участников M2M и ответ на него — весь путь до сервиса M2M и обратно{{else}}подтверждение доставки каждого отправленного пакета{{end}}</td>
<td class="muted" style="font-size:12.5px">{{if eq .Key "igw"}}bj обращается к шлюзу каждые 30 с{{else if eq .Key "nsd"}}журнал шлюза: ответы НРД на опросы входящих{{else if eq .Key "m2m"}}раз в час (и по кнопке «Проверить связь сейчас») запрос справочника участников M2M и ответ на него — весь путь до сервиса M2M и обратно{{else}}подтверждение доставки каждого отправленного пакета{{end}}</td>
</tr>{{end}}
</tbody>
</table>