1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-26 18:21:01 +00:00

Refactor feed creation to allow setting most fields via API

Allow API clients to create disabled feeds or define field like "ignore_http_cache".
This commit is contained in:
Frédéric Guillot 2021-01-02 16:33:41 -08:00 committed by fguillot
parent ab82c4b300
commit f0610bdd9c
26 changed files with 370 additions and 264 deletions

View file

@ -6,7 +6,7 @@ package worker // import "miniflux.app/worker"
import (
"miniflux.app/model"
"miniflux.app/reader/feed"
"miniflux.app/storage"
)
// Pool handles a pool of workers.
@ -22,13 +22,13 @@ func (p *Pool) Push(jobs model.JobList) {
}
// NewPool creates a pool of background workers.
func NewPool(feedHandler *feed.Handler, nbWorkers int) *Pool {
func NewPool(store *storage.Storage, nbWorkers int) *Pool {
workerPool := &Pool{
queue: make(chan model.Job),
}
for i := 0; i < nbWorkers; i++ {
worker := &Worker{id: i, feedHandler: feedHandler}
worker := &Worker{id: i, store: store}
go worker.Run(workerPool.queue)
}

View file

@ -11,13 +11,14 @@ import (
"miniflux.app/logger"
"miniflux.app/metric"
"miniflux.app/model"
"miniflux.app/reader/feed"
feedHandler "miniflux.app/reader/handler"
"miniflux.app/storage"
)
// Worker refreshes a feed in the background.
type Worker struct {
id int
feedHandler *feed.Handler
id int
store *storage.Storage
}
// Run wait for a job and refresh the given feed.
@ -29,7 +30,7 @@ func (w *Worker) Run(c chan model.Job) {
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)
refreshErr := feedHandler.RefreshFeed(w.store, job.UserID, job.FeedID)
if config.Opts.HasMetricsCollector() {
status := "success"