| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
- // SPDX-License-Identifier: Apache-2.0
- package cli // import "miniflux.app/v2/internal/cli"
- import (
- "time"
- "miniflux.app/v2/internal/config"
- "miniflux.app/v2/internal/logger"
- "miniflux.app/v2/internal/storage"
- "miniflux.app/v2/internal/worker"
- )
- func runScheduler(store *storage.Storage, pool *worker.Pool) {
- logger.Info(`Starting background scheduler...`)
- go feedScheduler(
- store,
- pool,
- config.Opts.PollingFrequency(),
- config.Opts.BatchSize(),
- )
- go cleanupScheduler(
- store,
- config.Opts.CleanupFrequencyHours(),
- )
- }
- func feedScheduler(store *storage.Storage, pool *worker.Pool, frequency, batchSize int) {
- for range time.Tick(time.Duration(frequency) * time.Minute) {
- jobs, err := store.NewBatch(batchSize)
- logger.Info("[Scheduler:Feed] Pushing %d jobs to the queue", len(jobs))
- if err != nil {
- logger.Error("[Scheduler:Feed] %v", err)
- } else {
- pool.Push(jobs)
- }
- }
- }
- func cleanupScheduler(store *storage.Storage, frequency int) {
- for range time.Tick(time.Duration(frequency) * time.Hour) {
- runCleanupTasks(store)
- }
- }
|