aboutsummaryrefslogtreecommitdiffhomepage
path: root/scheduler
diff options
context:
space:
mode:
Diffstat (limited to 'scheduler')
-rw-r--r--scheduler/doc.go10
-rw-r--r--scheduler/scheduler.go44
-rw-r--r--scheduler/worker.go36
-rw-r--r--scheduler/worker_pool.go36
4 files changed, 0 insertions, 126 deletions
diff --git a/scheduler/doc.go b/scheduler/doc.go
deleted file mode 100644
index 74a6f20..0000000
--- a/scheduler/doc.go
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2018 Frédéric Guillot. All rights reserved.
-// Use of this source code is governed by the Apache 2.0
-// license that can be found in the LICENSE file.
-
-/*
-
-Package scheduler implements the application internal scheduler.
-
-*/
-package scheduler // import "miniflux.app/scheduler"
diff --git a/scheduler/scheduler.go b/scheduler/scheduler.go
deleted file mode 100644
index f0a8134..0000000
--- a/scheduler/scheduler.go
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2017 Frédéric Guillot. All rights reserved.
-// Use of this source code is governed by the Apache 2.0
-// license that can be found in the LICENSE file.
-
-package scheduler // import "miniflux.app/scheduler"
-
-import (
- "time"
-
- "miniflux.app/logger"
- "miniflux.app/storage"
-)
-
-// NewFeedScheduler starts a new scheduler that push jobs to a pool of workers.
-func NewFeedScheduler(store *storage.Storage, workerPool *WorkerPool, frequency, batchSize int) {
- go func() {
- c := time.Tick(time.Duration(frequency) * time.Minute)
- for range c {
- jobs, err := store.NewBatch(batchSize)
- if err != nil {
- logger.Error("[FeedScheduler] %v", err)
- } else {
- logger.Debug("[FeedScheduler] Pushing %d jobs", len(jobs))
- workerPool.Push(jobs)
- }
- }
- }()
-}
-
-// NewCleanupScheduler starts a new scheduler that clean old sessions and archive read items.
-func NewCleanupScheduler(store *storage.Storage, frequency int) {
- go func() {
- c := time.Tick(time.Duration(frequency) * time.Hour)
- for range c {
- nbSessions := store.CleanOldSessions()
- nbUserSessions := store.CleanOldUserSessions()
- logger.Info("[CleanupScheduler] Cleaned %d sessions and %d user sessions", nbSessions, nbUserSessions)
-
- if err := store.ArchiveEntries(); err != nil {
- logger.Error("[CleanupScheduler] %v", err)
- }
- }
- }()
-}
diff --git a/scheduler/worker.go b/scheduler/worker.go
deleted file mode 100644
index 68efed7..0000000
--- a/scheduler/worker.go
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2017 Frédéric Guillot. All rights reserved.
-// Use of this source code is governed by the Apache 2.0
-// license that can be found in the LICENSE file.
-
-package scheduler // import "miniflux.app/scheduler"
-
-import (
- "time"
-
- "miniflux.app/logger"
- "miniflux.app/model"
- "miniflux.app/reader/feed"
-)
-
-// Worker refreshes a feed in the background.
-type Worker struct {
- id int
- feedHandler *feed.Handler
-}
-
-// Run wait for a job and refresh the given feed.
-func (w *Worker) Run(c chan model.Job) {
- logger.Info("[Worker] #%d started", w.id)
-
- for {
- job := <-c
- logger.Debug("[Worker #%d] got userID=%d, feedID=%d", w.id, job.UserID, job.FeedID)
-
- err := w.feedHandler.RefreshFeed(job.UserID, job.FeedID)
- if err != nil {
- logger.Error("[Worker] %v", err)
- }
-
- time.Sleep(time.Millisecond * 1000)
- }
-}
diff --git a/scheduler/worker_pool.go b/scheduler/worker_pool.go
deleted file mode 100644
index ce5a453..0000000
--- a/scheduler/worker_pool.go
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2017 Frédéric Guillot. All rights reserved.
-// Use of this source code is governed by the Apache 2.0
-// license that can be found in the LICENSE file.
-
-package scheduler // import "miniflux.app/scheduler"
-
-import (
- "miniflux.app/model"
- "miniflux.app/reader/feed"
-)
-
-// WorkerPool handle a pool of workers.
-type WorkerPool struct {
- queue chan model.Job
-}
-
-// Push send a list of jobs to the queue.
-func (w *WorkerPool) Push(jobs model.JobList) {
- for _, job := range jobs {
- w.queue <- job
- }
-}
-
-// NewWorkerPool creates a pool of background workers.
-func NewWorkerPool(feedHandler *feed.Handler, nbWorkers int) *WorkerPool {
- workerPool := &WorkerPool{
- queue: make(chan model.Job),
- }
-
- for i := 0; i < nbWorkers; i++ {
- worker := &Worker{id: i, feedHandler: feedHandler}
- go worker.Run(workerPool.queue)
- }
-
- return workerPool
-}