/
triggers_to_reindex.go
42 lines (33 loc) · 1.08 KB
/
triggers_to_reindex.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
39
40
41
42
package redis
import (
"fmt"
"github.com/gomodule/redigo/redis"
)
// FetchTriggersToReindex returns trigger IDs updated since 'from' param
// The trigger could be changed by user, or it's score was changed during trigger check
func (connector *DbConnector) FetchTriggersToReindex(from int64) ([]string, error) {
c := connector.pool.Get()
defer c.Close()
response, err := redis.Strings(c.Do("ZRANGEBYSCORE", triggersToReindexKey, from, "+inf"))
if err != nil {
return nil, fmt.Errorf("failed to fetch triggers to reindex: %s", err.Error())
}
if len(response) == 0 {
return make([]string, 0), nil
}
return response, nil
}
// RemoveTriggersToReindex removes outdated triggerIDs from redis
func (connector *DbConnector) RemoveTriggersToReindex(to int64) error {
c := connector.pool.Get()
defer c.Close()
err := c.Send("ZREMRANGEBYSCORE", triggersToReindexKey, "-inf", to)
if err != nil {
if err == redis.ErrNil {
return nil
}
return fmt.Errorf("failed to remove triggers to reindex: %s", err.Error())
}
return nil
}
var triggersToReindexKey = "moira-triggers-to-reindex"