pool-stats/jobs/recalculateCurrentDayStatsJob.go
2025-06-24 09:41:24 +03:00

41 lines
895 B
Go

package jobs
import (
"pool-stats/constants"
"pool-stats/database"
"time"
"github.com/ostafen/clover/v2"
)
type RecalculateCurrentDayStatsJob struct {
DB *clover.DB
}
func NewRecalculateCurrentDayStatsJob(db *clover.DB) *RecalculateCurrentDayStatsJob {
return &RecalculateCurrentDayStatsJob{DB: db}
}
func (job *RecalculateCurrentDayStatsJob) Run() error {
ticker := time.NewTicker(constants.RecalculateCurrentDayStatsJobInterval)
defer ticker.Stop()
for {
select {
case <-ticker.C:
job.recalculateCurrentDayStats()
}
}
}
func (job *RecalculateCurrentDayStatsJob) recalculateCurrentDayStats() {
today := time.Now().Truncate(24 * time.Hour)
yesterday := today.Add(-24 * time.Hour)
database.GetDailyStats(job.DB, today)
// Need to keep yesterday's stats cache updated
database.DeleteDailyStatsForDay(job.DB, yesterday)
database.GetDailyStats(job.DB, yesterday)
}