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 // update players from steam
tPlayerNeedSteamUpdate, err := db.Player.Query().Where( var lastUpdated time.Time
player.SteamUpdatedLTE(time.Now().UTC().Add(dur * -1)), err = rdc.Get(context.Background(), utils.CachePrefix+"last_updated_profiles", lastUpdated)
).All(context.Background()) if err != nil || time.Since(lastUpdated) >= (time.Hour*24) {
if err != nil { tPlayerNeedSteamUpdate, err := db.Player.Query().Where(
log.Errorf("[HK] Can't query players: %v", err) player.SteamUpdatedLTE(time.Now().UTC().Add(dur * -1)),
continue ).All(context.Background())
}
if len(tPlayerNeedSteamUpdate) > 0 {
log.Infof("[HK] Refreshing %d profiles from steam", len(tPlayerNeedSteamUpdate))
_, err = utils.PlayerFromSteam(tPlayerNeedSteamUpdate, db, conf.Steam.APIKey, rL)
if err != nil { 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)
} }
} }

View File

@@ -209,7 +209,8 @@ type (
const ( const (
shareCodeURLEntry = "https://api.steampowered.com/ICSGOPlayers_730/GetNextMatchSharingCode/v1?key=%s&steamid=%d&steamidkey=%s&knowncode=%s" shareCodeURLEntry = "https://api.steampowered.com/ICSGOPlayers_730/GetNextMatchSharingCode/v1?key=%s&steamid=%d&steamidkey=%s&knowncode=%s"
SideMetaCacheKey = "csgowtfd_side_meta_%d" CachePrefix = "csgowtfd_"
SideMetaCacheKey = CachePrefix + "side_meta_%d"
) )
//goland:noinspection SpellCheckingInspection //goland:noinspection SpellCheckingInspection