@@ -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+
257269func (am * DefaultAccountManager ) GetExternalCacheManager () account.ExternalCacheManager {
258270 return am .externalCacheManager
259271}
0 commit comments