Compare commits

..

3 Commits

Author SHA1 Message Date
Bel LaPointe
29ae26153f add logs 2022-01-11 07:58:08 -05:00
Bel LaPointe
8109bb3fa0 sleep on start before getting email 2022-01-11 07:57:11 -05:00
Bel LaPointe
27605997c1 emailer configurable interval 2022-01-11 07:50:58 -05:00
4 changed files with 16 additions and 10 deletions

View File

@@ -1,7 +1,8 @@
{
"Interval": {
"OK": "6h0m0s",
"Error": "6h"
"Error": "6h",
"Email": "15m"
},
"States": [
"GA"

View File

@@ -11,6 +11,7 @@ import (
type Config struct {
Interval struct {
Email Duration
OK Duration
Error Duration
}

19
main.go
View File

@@ -21,16 +21,15 @@ var stateFinder = regexp.MustCompile(`[A-Za-z]+`)
func main() {
lock := &sync.Mutex{}
go func() {
c := time.NewTicker(time.Minute)
for range c.C {
if !config.Get().EmailerEnabled {
continue
for {
time.Sleep(config.Get().Interval.Email.Get())
if config.Get().EmailerEnabled {
lock.Lock()
if err := email(); err != nil {
log.Print(err)
}
lock.Unlock()
}
lock.Lock()
if err := email(); err != nil {
log.Print(err)
}
lock.Unlock()
}
}()
if err := _main(); err != nil {
@@ -111,9 +110,11 @@ func _main() error {
}
func _mainOne() error {
log.Println("config.refreshing...")
if err := config.Refresh(); err != nil {
return err
}
log.Println("once...")
if err := once(); err != nil {
return err
}

View File

@@ -4,7 +4,10 @@ todo:
- banlist criteria like vendors, brokers, metadata
- quiet hours
- setup pa on element
- accept states via element for one system
done:
- configurable email interval
- jitter on intervals, including dedicated err span
- email doesnt get all matches
- send jobs
- read jobs