pool-stats/jobs/recalculateCurrentDayStatsJob.go
Pijus Kamandulis ac0285c2e6 Fix?
2025-07-05 08:44:52 +03:00

40 lines
896 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 {
<-ticker.C
job.recalculateCurrentDayStats()
}
}
func (job *RecalculateCurrentDayStatsJob) recalculateCurrentDayStats() {
today := time.Now()
yesterday := today.Add(-24 * time.Hour)
database.DeleteDailyStatsForDay(job.DB, today)
database.GetDailyStats(job.DB, today)
// Need to keep yesterday's stats cache updated
database.DeleteDailyStatsForDay(job.DB, yesterday)
database.GetDailyStats(job.DB, yesterday)
}