/
disk_event_worker.go
38 lines (32 loc) · 1.03 KB
/
disk_event_worker.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package node
import (
log "github.com/sirupsen/logrus"
"github.com/hwameistor/hwameistor/pkg/local-storage/member/node/diskmonitor"
)
func (m *manager) startDiskEventWorker(stopCh <-chan struct{}) {
m.logger.Debug("Disk Event Worker is working now")
go func() {
for {
event, shutdown := m.diskEventQueue.Get()
if shutdown {
m.logger.Debug("Stop the disk event worker")
break
}
if err := m.processDiskEvent(event); err != nil {
m.logger.WithFields(log.Fields{"event": event, "error": err.Error()}).Error("Failed to process disk event task, retry later")
m.diskEventQueue.AddRateLimited(event)
} else {
m.logger.WithFields(log.Fields{"event": event}).Debug("Completed a disk event.")
m.diskEventQueue.Forget(event)
}
m.diskEventQueue.Done(event)
}
}()
<-stopCh
m.diskEventQueue.Shutdown()
}
func (m *manager) processDiskEvent(event *diskmonitor.DiskEvent) error {
logCtx := m.logger.WithFields(log.Fields{"event": event})
logCtx.Debug("No further work on the disk event currently")
return nil
}