Parallelize sending

This commit is contained in:
Ian Gulliver
2025-08-20 23:11:19 -07:00
parent 9e9cceec20
commit a670da769f

31
main.go
View File

@@ -77,14 +77,31 @@ func (ph *PHandler) serveRoot(w http.ResponseWriter, r *http.Request) {
}
func (ph *PHandler) sendAlert(m string) error {
err := ph.pd.sendAlert(m)
if err != nil {
return fmt.Errorf("Error sending to PagerDuty: %w", err)
}
res := make(chan error, 2)
err = ph.gc.sendMessage(ph.garminIMEI, ph.garminSender, m)
if err != nil {
return fmt.Errorf("Error sending to Garmin: %w", err)
go func() {
err := ph.gc.sendMessage(ph.garminIMEI, ph.garminSender, m)
if err != nil {
res <- fmt.Errorf("Error sending to Garmin: %w", err)
} else {
res <- nil
}
}()
go func() {
err := ph.pd.sendAlert(m)
if err != nil {
res <- fmt.Errorf("Error sending to PagerDuty: %w", err)
} else {
res <- nil
}
}()
for i := 0; i < 2; i++ {
err := <-res
if err != nil {
return err
}
}
return nil