Skip to content

Commit f1de8e6

Browse files
[management] Make startup period configurable (#3767)
1 parent b2a1078 commit f1de8e6

File tree

1 file changed

+27
-15
lines changed

1 file changed

+27
-15
lines changed

management/server/account.go

+27-15
Original file line numberDiff line numberDiff line change
@@ -196,21 +196,7 @@ func BuildManager(
196196
permissionsManager: permissionsManager,
197197
}
198198

199-
var initialInterval int64
200-
intervalStr := os.Getenv("PEER_UPDATE_INTERVAL_MS")
201-
interval, err := strconv.Atoi(intervalStr)
202-
if err != nil {
203-
initialInterval = 1
204-
} else {
205-
initialInterval = int64(interval) * 10
206-
go func() {
207-
time.Sleep(30 * time.Second)
208-
am.updateAccountPeersBufferInterval.Store(int64(time.Duration(interval) * time.Millisecond))
209-
log.WithContext(ctx).Infof("set peer update buffer interval to %dms", interval)
210-
}()
211-
}
212-
am.updateAccountPeersBufferInterval.Store(initialInterval)
213-
log.WithContext(ctx).Infof("set peer update buffer interval to %dms", initialInterval)
199+
am.startWarmup(ctx)
214200

215201
accountsCounter, err := store.GetAccountsCounter(ctx)
216202
if err != nil {
@@ -254,6 +240,32 @@ func BuildManager(
254240
return am, nil
255241
}
256242

243+
func (am *DefaultAccountManager) startWarmup(ctx context.Context) {
244+
var initialInterval int64
245+
intervalStr := os.Getenv("NB_PEER_UPDATE_INTERVAL_MS")
246+
interval, err := strconv.Atoi(intervalStr)
247+
if err != nil {
248+
initialInterval = 1
249+
log.WithContext(ctx).Warnf("failed to parse peer update interval, using default value %dms: %v", initialInterval, err)
250+
} else {
251+
initialInterval = int64(interval) * 10
252+
go func() {
253+
startupPeriodStr := os.Getenv("NB_PEER_UPDATE_STARTUP_PERIOD_S")
254+
startupPeriod, err := strconv.Atoi(startupPeriodStr)
255+
if err != nil {
256+
startupPeriod = 1
257+
log.WithContext(ctx).Warnf("failed to parse peer update startup period, using default value %ds: %v", startupPeriod, err)
258+
}
259+
time.Sleep(time.Duration(startupPeriod) * time.Second)
260+
am.updateAccountPeersBufferInterval.Store(int64(time.Duration(interval) * time.Millisecond))
261+
log.WithContext(ctx).Infof("set peer update buffer interval to %dms", interval)
262+
}()
263+
}
264+
am.updateAccountPeersBufferInterval.Store(initialInterval)
265+
log.WithContext(ctx).Infof("set peer update buffer interval to %dms", initialInterval)
266+
267+
}
268+
257269
func (am *DefaultAccountManager) GetExternalCacheManager() account.ExternalCacheManager {
258270
return am.externalCacheManager
259271
}

0 commit comments

Comments
 (0)