diff options
Diffstat (limited to 'walrss/internal/rss/watcher.go')
| -rw-r--r-- | walrss/internal/rss/watcher.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/walrss/internal/rss/watcher.go b/walrss/internal/rss/watcher.go new file mode 100644 index 0000000..e7036c1 --- /dev/null +++ b/walrss/internal/rss/watcher.go @@ -0,0 +1,26 @@ +package rss + +import ( + "github.com/codemicro/walrss/walrss/internal/db" + "github.com/codemicro/walrss/walrss/internal/state" + "github.com/rs/zerolog/log" + "time" +) + +func StartWatcher(st *state.State) { + go func() { + currentTime := time.Now().UTC() + time.Sleep(time.Minute * time.Duration(60-currentTime.Minute())) + + if err := ProcessFeeds(st, db.SendDayFromWeekday(currentTime.Weekday()), currentTime.Hour()+1); err != nil { + log.Error().Err(err).Str("location", "feed watcher").Send() + } + + ticker := time.NewTicker(time.Hour) + for currentTime := range ticker.C { + if err := ProcessFeeds(st, db.SendDayFromWeekday(currentTime.Weekday()), currentTime.Hour()); err != nil { + log.Error().Err(err).Str("location", "feed watcher").Send() + } + } + }() +} |
