Режим разработки: служебные разделы, робот НРД и имитации — только по признаку из ключа лицензии
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -171,17 +171,21 @@ func LicenseRenew(ctx context.Context, rc *RuntimeConfig) error {
|
||||
return licenseAccept(rc, r.Token, "продлена")
|
||||
}
|
||||
|
||||
// licenseNeedsRenew — онлайн-ключ, и сутки без успешного продления.
|
||||
// licenseNeedsRenew — онлайн-ключ и 15 минут без продления: так режим разработки, включённый или
|
||||
// выключенный на сервере лицензий, доходит до установки быстро. После неудачи — не чаще раза в час.
|
||||
func licenseNeedsRenew(rc *RuntimeConfig) bool {
|
||||
s := rc.Snapshot().License
|
||||
lic, err := verifyLicenseToken(s.Key)
|
||||
if err != nil || lic.InstallID == "" {
|
||||
return false
|
||||
}
|
||||
return time.Since(s.LastSync) >= 23*time.Hour
|
||||
if !s.LastOK && !s.LastAttempt.IsZero() && time.Since(s.LastAttempt) < time.Hour && time.Since(s.LastSync) < 23*time.Hour {
|
||||
return false
|
||||
}
|
||||
return time.Since(s.LastSync) >= 15*time.Minute
|
||||
}
|
||||
|
||||
// licenseLoop — раз в час предупреждает о скором окончании лицензии и проверяет, пора ли продлить
|
||||
// licenseLoop — раз в 5 минут предупреждает о скором окончании лицензии и проверяет, пора ли продлить
|
||||
// ключ (продление — раз в сутки, при сбое — повтор через час).
|
||||
func (s *Server) licenseLoop(ctx context.Context) {
|
||||
ensureInstallID(s.rc)
|
||||
@@ -192,7 +196,7 @@ func (s *Server) licenseLoop(ctx context.Context) {
|
||||
return
|
||||
case <-time.After(wait):
|
||||
}
|
||||
wait = time.Hour
|
||||
wait = 5 * time.Minute
|
||||
licenseExpiryWarn(s.rc, time.Now())
|
||||
if !licenseNeedsRenew(s.rc) {
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user