forked from mattermost/mattermost-plugin-mscalendar
-
Notifications
You must be signed in to change notification settings - Fork 0
/
renew_job.go
43 lines (34 loc) · 1.04 KB
/
renew_job.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
43
// Copyright (c) 2019-present Mattermost, Inc. All Rights Reserved.
// See License for license information.
package jobs
import (
"time"
"github.com/firstfoundry/ff-mattermost-plugin-mscalendar/server/mscalendar"
)
const ditherRenew = 50 * time.Millisecond
func NewRenewJob() RegisteredJob {
return RegisteredJob{
id: "renew",
interval: 24 * time.Hour,
work: runRenewJob,
}
}
// runRenewJob calls renews the event subscription for each connected user
func runRenewJob(env mscalendar.Env) {
uindex, err := env.Store.LoadUserIndex()
if err != nil {
env.Logger.Errorf("Renew job failed to load user index. err=%v", err)
return
}
env.Logger.Debugf("Renew job: %v users", len(uindex))
for _, u := range uindex {
asUser := mscalendar.New(env, u.MattermostUserID)
env.Logger.Debugf("Renewing for user: %s", u.MattermostUserID)
_, err = asUser.RenewMyEventSubscription()
if err != nil {
env.Logger.Errorf("Error renewing subscription. err=%v", err)
}
time.Sleep(ditherRenew)
}
env.Logger.Debugf("Renew job finished")
}