aboutsummaryrefslogtreecommitdiffhomepage
path: root/scheduler/scheduler.go
blob: ab87e99224c74bb74b2b6e6e848ae1575b329ed5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)
		}
	}
}