feat: notifications
This commit is contained in:
parent
310b107a23
commit
e854a9f32a
|
@ -34,7 +34,7 @@ type Monitor struct {
|
|||
client TWHelpClient
|
||||
groupSvc GroupReader
|
||||
ennoblementsMu sync.Mutex // ennoblementsMu is used by Monitor.fetchEnnoblements
|
||||
ennoblementsLastFetchedAt map[string]time.Time // ennoblementsLastFetchedAt is used by Monitor.fetchEnnoblements
|
||||
ennoblementsSince map[string]time.Time // ennoblementsSince is used by Monitor.fetchEnnoblements
|
||||
ennoblementsMaxConcurrentRequests int // ennoblementsMaxConcurrentRequests is used by Monitor.fetchEnnoblements
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ func NewMonitor(
|
|||
client: client,
|
||||
groupSvc: groupSvc,
|
||||
ennoblementsMaxConcurrentRequests: ennoblementsMaxConcurrentRequests,
|
||||
ennoblementsLastFetchedAt: make(map[string]time.Time),
|
||||
ennoblementsSince: make(map[string]time.Time),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -220,8 +220,8 @@ func (m *Monitor) fetchEnnoblements(ctx context.Context, groups []domain.Group)
|
|||
ch := make(chan listEnnoblementsResult)
|
||||
reqLimiter := make(chan struct{}, m.ennoblementsMaxConcurrentRequests)
|
||||
defer close(reqLimiter)
|
||||
ennoblementsLastFetchedAt := m.ennoblementsLastFetchedAt
|
||||
skip := make(map[string]struct{}, len(ennoblementsLastFetchedAt))
|
||||
ennoblementsSince := m.ennoblementsSince
|
||||
skip := make(map[string]struct{}, len(ennoblementsSince))
|
||||
|
||||
for _, g := range groups {
|
||||
if g.ChannelGains == "" && g.ChannelLosses == "" {
|
||||
|
@ -235,7 +235,7 @@ func (m *Monitor) fetchEnnoblements(ctx context.Context, groups []domain.Group)
|
|||
}
|
||||
skip[key] = struct{}{}
|
||||
|
||||
since := ennoblementsLastFetchedAt[key]
|
||||
since := ennoblementsSince[key]
|
||||
if since.IsZero() {
|
||||
since = time.Now().Add(-1 * time.Minute)
|
||||
}
|
||||
|
@ -269,8 +269,8 @@ func (m *Monitor) fetchEnnoblements(ctx context.Context, groups []domain.Group)
|
|||
close(ch)
|
||||
}()
|
||||
|
||||
// reinitialize ennoblementsLastFetchedAt
|
||||
m.ennoblementsLastFetchedAt = make(map[string]time.Time)
|
||||
// reinitialize ennoblementsSince
|
||||
m.ennoblementsSince = make(map[string]time.Time)
|
||||
|
||||
//nolint:prealloc
|
||||
var results []fetchEnnoblementsResult
|
||||
|
@ -279,9 +279,9 @@ func (m *Monitor) fetchEnnoblements(ctx context.Context, groups []domain.Group)
|
|||
|
||||
key := res.versionCode + ":" + res.serverKey
|
||||
if l := len(res.ennoblements); l > 0 {
|
||||
m.ennoblementsLastFetchedAt[key] = res.ennoblements[l-1].CreatedAt.Add(time.Second)
|
||||
m.ennoblementsSince[key] = res.ennoblements[l-1].CreatedAt.Add(time.Second)
|
||||
} else {
|
||||
m.ennoblementsLastFetchedAt[key] = ennoblementsLastFetchedAt[key]
|
||||
m.ennoblementsSince[key] = ennoblementsSince[key]
|
||||
}
|
||||
|
||||
if res.err != nil {
|
||||
|
|
Loading…
Reference in New Issue
Block a user