update steam profiles only once a day

This commit is contained in:
2022-02-01 19:23:41 +01:00
parent 4b3b8d8053
commit 1aa7cc260a
2 changed files with 28 additions and 13 deletions

38
main.go
View File

@@ -61,19 +61,33 @@ func housekeeping() {
}
// update players from steam
tPlayerNeedSteamUpdate, err := db.Player.Query().Where(
player.SteamUpdatedLTE(time.Now().UTC().Add(dur * -1)),
).All(context.Background())
if err != nil {
log.Errorf("[HK] Can't query players: %v", err)
continue
}
if len(tPlayerNeedSteamUpdate) > 0 {
log.Infof("[HK] Refreshing %d profiles from steam", len(tPlayerNeedSteamUpdate))
_, err = utils.PlayerFromSteam(tPlayerNeedSteamUpdate, db, conf.Steam.APIKey, rL)
var lastUpdated time.Time
err = rdc.Get(context.Background(), utils.CachePrefix+"last_updated_profiles", lastUpdated)
if err != nil || time.Since(lastUpdated) >= (time.Hour*24) {
tPlayerNeedSteamUpdate, err := db.Player.Query().Where(
player.SteamUpdatedLTE(time.Now().UTC().Add(dur * -1)),
).All(context.Background())
if err != nil {
log.Warningf("[HK] Unable to update profiles from steam: %v", err)
log.Errorf("[HK] Can't query players: %v", err)
continue
}
if len(tPlayerNeedSteamUpdate) > 0 {
log.Infof("[HK] Updating %d profiles from steam", len(tPlayerNeedSteamUpdate))
_, err = utils.PlayerFromSteam(tPlayerNeedSteamUpdate, db, conf.Steam.APIKey, rL)
if err != nil {
log.Warningf("[HK] Unable to update profiles from steam: %v", err)
}
}
err = rdc.Set(&cache.Item{
Ctx: context.Background(),
Key: utils.CachePrefix + "last_updated_profiles",
Value: time.Now().UTC(),
TTL: time.Hour * 24 * 30,
SkipLocalCache: true,
})
if err != nil {
log.Errorf("[HK] Failure setting cache: %v", err)
}
}