diff options
Diffstat (limited to 'scheduler/scheduler.go')
-rw-r--r-- | scheduler/scheduler.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/scheduler/scheduler.go b/scheduler/scheduler.go new file mode 100644 index 00000000..ab87e992 --- /dev/null +++ b/scheduler/scheduler.go @@ -0,0 +1,24 @@ +// 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 ( + "github.com/miniflux/miniflux2/storage" + "log" + "time" +) + +// NewScheduler starts a new scheduler to push jobs to a pool of workers. +func NewScheduler(store *storage.Storage, workerPool *WorkerPool, frequency, batchSize int) { + c := time.Tick(time.Duration(frequency) * time.Minute) + for now := range c { + jobs := store.GetJobs(batchSize) + log.Printf("[Scheduler:%v] => Pushing %d jobs\n", now, len(jobs)) + + for _, job := range jobs { + workerPool.Push(job) + } + } +} |