diff --git a/packages/backend/src/core/HashtagService.ts b/packages/backend/src/core/HashtagService.ts index d50b78183..cc5ce4e96 100644 --- a/packages/backend/src/core/HashtagService.ts +++ b/packages/backend/src/core/HashtagService.ts @@ -177,29 +177,29 @@ export class HashtagService { // チャート用 redisPipeline.pfadd(`hashtagUsers:${hashtag}:${window}`, userId); - const TTLwindow = await this.redisClient.ttl(`hashtagUsers:${hashtag}:${window}`); - - if (TTLwindow === -1) { - redisPipeline.expire(`hashtagUsers:${hashtag}:${window}`, - 60 * 60 * 24 * 3, // 3日間 - //'NX', // "NX -- Set expiry only when the key has no expiry" = 有効期限がないときだけ設定 - ); - } - // ユニークカウント用 // TODO: Bloom Filter を使うようにしても良さそう redisPipeline.sadd(`hashtagUsers:${hashtag}`, userId); + await redisPipeline.exec(); + const TTL = await this.redisClient.ttl(`hashtagUsers:${hashtag}`); if (TTL === -1) { - redisPipeline.expire(`hashtagUsers:${hashtag}`, + this.redisClient.expire(`hashtagUsers:${hashtag}`, 60 * 60, // 1時間 //'NX', // "NX -- Set expiry only when the key has no expiry" = 有効期限がないときだけ設定 ); } - redisPipeline.exec(); + const TTLwindow = await this.redisClient.ttl(`hashtagUsers:${hashtag}:${window}`); + + if (TTLwindow === -1) { + this.redisClient.expire(`hashtagUsers:${hashtag}:${window}`, + 60 * 60 * 24 * 3, // 3日間 + //'NX', // "NX -- Set expiry only when the key has no expiry" = 有効期限がないときだけ設定 + ); + } } @bindThis