MCPcopy
hub / github.com/redis/go-redis / Start

Method Start

example/del-keys-without-ttl/main.go:66–101  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

64}
65
66func (c *KeyChecker) Start(ctx context.Context) {
67 c.wg.Add(1)
68 go func() {
69 defer c.wg.Done()
70 if err := c.del(ctx); err != nil {
71 panic(err)
72 }
73 }()
74
75 c.wg.Add(1)
76 go func() {
77 defer c.wg.Done()
78 defer close(c.delCh)
79
80 keys := make([]string, 0, c.batchSize)
81
82 for key := range c.ch {
83 keys = append(keys, key)
84 if len(keys) < cap(keys) {
85 continue
86 }
87
88 if err := c.checkKeys(ctx, keys); err != nil {
89 c.logger.Error("checkKeys failed", zap.Error(err))
90 }
91 keys = keys[:0]
92 }
93
94 if len(keys) > 0 {
95 if err := c.checkKeys(ctx, keys); err != nil {
96 c.logger.Error("checkKeys failed", zap.Error(err))
97 }
98 keys = nil
99 }
100 }()
101}
102
103func (c *KeyChecker) Stop() int {
104 close(c.ch)

Callers 1

mainFunction · 0.95

Calls 4

delMethod · 0.95
checkKeysMethod · 0.95
AddMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected