func()

in pkg/process/finders/storage.go [89:123]


func (s *ProcessStorage) StartReport() {
	// for report all processes
	go func() {
		timeTicker := time.NewTicker(s.reportInterval)
		for {
			select {
			case <-timeTicker.C:
				if err := s.reportAllProcesses(); err != nil {
					log.Errorf("report all processes error: %v", err)
				}
			case <-s.ctx.Done():
				timeTicker.Stop()
				return
			}
		}
	}()

	// for start listener
	go func() {
		timeTicker := time.NewTicker(s.listenerRecheckInterval)
		for {
			select {
			case <-timeTicker.C:
				s.notifyToRecheckAllProcesses(s.listeners)
			case e := <-s.eventQueue:
				s.consumeProcessEvent(s.listeners, e)
			case l := <-s.initListenQueue:
				s.notifyToRecheckAllProcesses([]api.ProcessListener{l})
			case <-s.ctx.Done():
				timeTicker.Stop()
				return
			}
		}
	}()
}