Лицензия: предупреждения заранее об окончании и о смене версий внешних систем
За 30, 14, 7 и 1 день до окончания договора (офлайн-ключ или застрявшее продление — до конца ключа) bj шлёт уведомление: что продолжит работать, а что отключится. Каждый порог — один раз, при продлении договора отсчёт заново; проверка раз в час в licenseLoop. После каждого опроса версий bj запоминает версии внешних систем (МНП QUIK, ИШ, DEPO, экспортёр ARQA, «Валидата», Java, PostgreSQL, ОС). Если обновления bj недоступны и версия изменилась — уведомление, что совместимость с новой версией не гарантируется. Решение: после окончания лицензии цикл QUIK МНП и личный кабинет продолжают работать. Состояние — /var/lib/bj/.bj/license-watch.json. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -181,8 +181,8 @@ func licenseNeedsRenew(rc *RuntimeConfig) bool {
|
||||
return time.Since(s.LastSync) >= 23*time.Hour
|
||||
}
|
||||
|
||||
// licenseLoop — раз в час проверяет, пора ли продлить ключ (продление — раз в сутки,
|
||||
// при сбое — повтор через час).
|
||||
// licenseLoop — раз в час предупреждает о скором окончании лицензии и проверяет, пора ли продлить
|
||||
// ключ (продление — раз в сутки, при сбое — повтор через час).
|
||||
func (s *Server) licenseLoop(ctx context.Context) {
|
||||
ensureInstallID(s.rc)
|
||||
wait := 2 * time.Minute
|
||||
@@ -193,6 +193,7 @@ func (s *Server) licenseLoop(ctx context.Context) {
|
||||
case <-time.After(wait):
|
||||
}
|
||||
wait = time.Hour
|
||||
licenseExpiryWarn(s.rc, time.Now())
|
||||
if !licenseNeedsRenew(s.rc) {
|
||||
continue
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user