Skip to content

Commit a755aa4

Browse files
authored
Delete stale recommendations from cache before setting new ones (#1145)
1 parent 02133d5 commit a755aa4

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

worker/pipeline.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,13 @@ func (p *Pipeline) Recommend(ctx context.Context, users []data.User, progress fu
216216
log.Logger().Error("failed to cache recommendation", zap.Error(err))
217217
return
218218
}
219+
if err = p.CacheClient.DeleteScores(ctx, []string{cache.Recommend}, cache.ScoreCondition{
220+
Before: &recommendTime,
221+
Subset: proto.String(userId),
222+
}); err != nil {
223+
log.Logger().Error("failed to delete stale recommendation", zap.Error(err))
224+
return
225+
}
219226
if err = p.CacheClient.Set(ctx,
220227
cache.Time(cache.Key(cache.RecommendUpdateTime, userId), recommendTime),
221228
cache.String(cache.Key(cache.RecommendDigest, userId), digest),

worker/worker_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,10 @@ func (suite *WorkerTestSuite) TestRecommend() {
457457
}, true, true, true)
458458
suite.NoError(err)
459459

460+
// insert stale recommendation
461+
err = suite.CacheClient.AddScores(ctx, cache.Recommend, "0", []cache.Score{{Id: "999", Score: 999}})
462+
suite.NoError(err)
463+
460464
// insert non-personalized recommendation
461465
err = suite.CacheClient.AddScores(ctx, cache.NonPersonalized, "popular", []cache.Score{{Id: "3", Categories: []string{""}}})
462466
suite.NoError(err)

0 commit comments

Comments
 (0)