MCPcopy Create free account
hub / github.com/devfeel/dotweb / checkAndRemoveIntervalData

Method checkAndRemoveIntervalData

core/state.go:315–358  ·  view source on GitHub ↗

check and remove need to remove interval data with request and error

()

Source from the content-addressed store, hash-verified

313
314// check and remove need to remove interval data with request and error
315func (state *ServerStateInfo) checkAndRemoveIntervalData() {
316 var needRemoveKey []string
317 now, _ := time.Parse(minuteTimeLayout, time.Now().Format(minuteTimeLayout))
318
319 // check IntervalRequestData
320 state.IntervalRequestData.RLock()
321 if state.IntervalRequestData.Len() > defaultReserveMinutes {
322 for k := range state.IntervalRequestData.GetCurrentMap() {
323 if t, err := time.Parse(minuteTimeLayout, k); err != nil {
324 needRemoveKey = append(needRemoveKey, k)
325 } else {
326 if now.Sub(t) > (defaultReserveMinutes * time.Minute) {
327 needRemoveKey = append(needRemoveKey, k)
328 }
329 }
330 }
331 }
332 state.IntervalRequestData.RUnlock()
333 // remove keys
334 for _, v := range needRemoveKey {
335 state.IntervalRequestData.Remove(v)
336 }
337
338 // check IntervalErrorData
339 needRemoveKey = []string{}
340 state.IntervalErrorData.RLock()
341 if state.IntervalErrorData.Len() > defaultReserveMinutes {
342 for k := range state.IntervalErrorData.GetCurrentMap() {
343 if t, err := time.Parse(minuteTimeLayout, k); err != nil {
344 needRemoveKey = append(needRemoveKey, k)
345 } else {
346 if now.Sub(t) > (defaultReserveMinutes * time.Minute) {
347 needRemoveKey = append(needRemoveKey, k)
348 }
349 }
350 }
351 }
352 state.IntervalErrorData.RUnlock()
353 // remove keys
354 for _, v := range needRemoveKey {
355 state.IntervalErrorData.Remove(v)
356 }
357 time.AfterFunc(time.Duration(defaultCheckTimeMinutes)*time.Minute, state.checkAndRemoveIntervalData)
358}

Callers

nothing calls this directly

Calls 3

LenMethod · 0.65
GetCurrentMapMethod · 0.65
RemoveMethod · 0.65

Tested by

no test coverage detected