diff options
Diffstat (limited to 'worker/worker.go')
-rw-r--r-- | worker/worker.go | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/worker/worker.go b/worker/worker.go index f21f046a..0ca1eadb 100644 --- a/worker/worker.go +++ b/worker/worker.go @@ -5,7 +5,11 @@ package worker // import "miniflux.app/worker" import ( + "time" + + "miniflux.app/config" "miniflux.app/logger" + "miniflux.app/metric" "miniflux.app/model" "miniflux.app/reader/feed" ) @@ -22,11 +26,21 @@ func (w *Worker) Run(c chan model.Job) { for { job := <-c - logger.Debug("[Worker #%d] got userID=%d, feedID=%d", w.id, job.UserID, job.FeedID) + logger.Debug("[Worker #%d] Received feed #%d for user #%d", w.id, job.FeedID, job.UserID) + + startTime := time.Now() + refreshErr := w.feedHandler.RefreshFeed(job.UserID, job.FeedID) + + if config.Opts.HasMetricsCollector() { + status := "success" + if refreshErr != nil { + status = "error" + } + metric.BackgroundFeedRefreshDuration.WithLabelValues(status).Observe(time.Since(startTime).Seconds()) + } - err := w.feedHandler.RefreshFeed(job.UserID, job.FeedID) - if err != nil { - logger.Error("[Worker] Feed #%d: %v", job.FeedID, err) + if refreshErr != nil { + logger.Error("[Worker] Refreshing the feed #%d returned this error: %v", job.FeedID, refreshErr) } } } |