4
0

cleanup_tasks.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
  2. // SPDX-License-Identifier: Apache-2.0
  3. package cli // import "miniflux.app/v2/internal/cli"
  4. import (
  5. "time"
  6. "miniflux.app/v2/internal/config"
  7. "miniflux.app/v2/internal/logger"
  8. "miniflux.app/v2/internal/metric"
  9. "miniflux.app/v2/internal/model"
  10. "miniflux.app/v2/internal/storage"
  11. )
  12. func runCleanupTasks(store *storage.Storage) {
  13. nbSessions := store.CleanOldSessions(config.Opts.CleanupRemoveSessionsDays())
  14. nbUserSessions := store.CleanOldUserSessions(config.Opts.CleanupRemoveSessionsDays())
  15. logger.Info("[Sessions] Removed %d application sessions and %d user sessions", nbSessions, nbUserSessions)
  16. startTime := time.Now()
  17. if rowsAffected, err := store.ArchiveEntries(model.EntryStatusRead, config.Opts.CleanupArchiveReadDays(), config.Opts.CleanupArchiveBatchSize()); err != nil {
  18. logger.Error("[ArchiveReadEntries] %v", err)
  19. } else {
  20. logger.Info("[ArchiveReadEntries] %d entries changed", rowsAffected)
  21. if config.Opts.HasMetricsCollector() {
  22. metric.ArchiveEntriesDuration.WithLabelValues(model.EntryStatusRead).Observe(time.Since(startTime).Seconds())
  23. }
  24. }
  25. startTime = time.Now()
  26. if rowsAffected, err := store.ArchiveEntries(model.EntryStatusUnread, config.Opts.CleanupArchiveUnreadDays(), config.Opts.CleanupArchiveBatchSize()); err != nil {
  27. logger.Error("[ArchiveUnreadEntries] %v", err)
  28. } else {
  29. logger.Info("[ArchiveUnreadEntries] %d entries changed", rowsAffected)
  30. if config.Opts.HasMetricsCollector() {
  31. metric.ArchiveEntriesDuration.WithLabelValues(model.EntryStatusUnread).Observe(time.Since(startTime).Seconds())
  32. }
  33. }
  34. }