Cache current day stats for 5m
This commit is contained in:
parent
edb17e825d
commit
11cc168b3a
@ -258,10 +258,9 @@ func GetDailyStats(db *clover.DB, date time.Time) (*models.DailyStats, error) {
|
||||
dateStr := date.Format(time.DateOnly)
|
||||
|
||||
// Check if stats already exist
|
||||
isToday := dateStr == time.Now().UTC().Format(time.DateOnly)
|
||||
existingDoc, err := db.FindFirst(c.NewQuery(DailyStatsCollectionName).
|
||||
Where(c.Field("Date").Eq(dateStr)))
|
||||
if !isToday && err == nil && existingDoc != nil {
|
||||
if err == nil && existingDoc != nil {
|
||||
var stats models.DailyStats
|
||||
if err := existingDoc.Unmarshal(&stats); err != nil {
|
||||
return nil, fmt.Errorf("failed to unmarshal daily stats: %v", err)
|
||||
@ -307,6 +306,12 @@ func GetDailyStats(db *clover.DB, date time.Time) (*models.DailyStats, error) {
|
||||
|
||||
// Insert or update the daily stats in the collection
|
||||
doc := document.NewDocumentOf(stats)
|
||||
|
||||
isToday := dateStr == time.Now().UTC().Format(time.DateOnly)
|
||||
if isToday {
|
||||
doc.SetExpiresAt(time.Now().Add(5 * time.Minute))
|
||||
}
|
||||
|
||||
if _, err := db.InsertOne(DailyStatsCollectionName, doc); err != nil {
|
||||
return nil, fmt.Errorf("failed to insert daily stats: %v", err)
|
||||
}
|
||||
|
@ -32,6 +32,7 @@ func (job *RecalculateCurrentDayStatsJob) recalculateCurrentDayStats() {
|
||||
today := time.Now().Truncate(24 * time.Hour)
|
||||
yesterday := today.Add(-24 * time.Hour)
|
||||
|
||||
database.DeleteDailyStatsForDay(job.DB, today)
|
||||
database.GetDailyStats(job.DB, today)
|
||||
|
||||
// Need to keep yesterday's stats cache updated
|
||||
|
Loading…
x
Reference in New Issue
Block a user