Skip to content

Commit 09d286b

Browse files
authored
fix(backend): scheduling of daily & hourly alert jobs (#2854)
- fix cron syntax for daily summary job - fix cron syntax for crash & ANR job - improve error handling - improve logging fixes #2853 --------- Signed-off-by: detj <[email protected]>
1 parent c5048ff commit 09d286b

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

backend/alerts/main.go

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ import (
2929
func main() {
3030
config := server.NewConfig()
3131
server.Init(config)
32+
ctx := context.Background()
3233

33-
cron := initCron(context.Background())
34+
cron := initCron(ctx)
3435

3536
alertsTracer := initTracer(config.OtelServiceName)
3637

@@ -79,13 +80,34 @@ func main() {
7980

8081
func initCron(ctx context.Context) *cron.Cron {
8182
cron := cron.New()
82-
// Google Cloud Run, doesn't like the "0 0 * * * *" cron
83-
// syntax and doesn't trigger the method call.
84-
// So, for now, we'll just rely on "@every 1h" because that seems to work.
85-
cron.AddFunc("@every 1h", func() { alerts.CreateCrashAndAnrAlerts(ctx) })
86-
cron.AddFunc("@daily", func() { alerts.CreateDailySummary(ctx) })
87-
cron.AddFunc("@every 5m", func() { email.SendPendingAlertEmails(ctx) })
88-
cron.AddFunc("@every 5m", func() { slack.SendPendingAlertSlackMessages(ctx) })
83+
84+
// run at 6 PM every 24h
85+
if _, err := cron.AddFunc("0 6 * * *", func() { alerts.CreateDailySummary(ctx) }); err != nil {
86+
fmt.Printf("Failed to schedule daily summary job: %v\n", err)
87+
}
88+
89+
fmt.Println("Scheduled daily summary job")
90+
91+
// run every hour
92+
if _, err := cron.AddFunc("0 * * * *", func() { alerts.CreateCrashAndAnrAlerts(ctx) }); err != nil {
93+
fmt.Printf("Failed to schedule hourly crash and ANR alert job: %v\n", err)
94+
}
95+
96+
fmt.Println("Scheduled crash & ANR job")
97+
98+
// run every 5m
99+
if _, err := cron.AddFunc("@every 5m", func() { email.SendPendingAlertEmails(ctx) }); err != nil {
100+
fmt.Printf("Failed to schedule email alert job: %v\n", err)
101+
}
102+
103+
fmt.Println("Scheduled email alert job")
104+
105+
// run every 5m
106+
if _, err := cron.AddFunc("@every 5m", func() { slack.SendPendingAlertSlackMessages(ctx) }); err != nil {
107+
fmt.Printf("Failed to schedule Slack alert job: %v\n", err)
108+
}
109+
110+
fmt.Println("Scheduled Slack alert job")
89111

90112
cron.Start()
91113
return cron

0 commit comments

Comments
 (0)