Skip to content

Commit e8ccd47

Browse files
committed
feat: create score post queue
1 parent 7523a34 commit e8ccd47

File tree

4 files changed

+32
-26
lines changed

4 files changed

+32
-26
lines changed

apps/server/src/lib/redis/RedisService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { injectable, singleton } from 'tsyringe'
33
import { RedisService as Redis } from '@packages/database/velog-redis'
44
export type {
55
ChangeEmailArgs,
6-
CheckPostSpamArgs,
7-
CreateFeedArgs,
6+
CheckPostSpamQueueData,
7+
CreateFeedQueueData,
88
} from '@packages/database/velog-redis'
99

1010
@injectable()

apps/server/src/services/PostApiService/index.mts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@ import { SeriesService } from '@services/SeriesService/index.mjs'
1717
import { SearchService } from '@services/SearchService/index.js'
1818
import { ExternalIntegrationService } from '@services/ExternalIntegrationService/index.js'
1919
import { PostService } from '@services/PostService/index.js'
20-
import { CreateFeedArgs, RedisService, CheckPostSpamArgs } from '@lib/redis/RedisService.js'
20+
import {
21+
RedisService,
22+
type CreateFeedQueueData,
23+
type CheckPostSpamQueueData,
24+
} from '@lib/redis/RedisService.js'
2125
import { GraphcdnService } from '@lib/graphcdn/GraphcdnService.js'
2226
import { ImageService } from '@services/ImageService/index.js'
2327
import { UserService } from '@services/UserService/index.js'
@@ -315,24 +319,24 @@ export class PostApiService implements Service {
315319
// create feed
316320
setTimeout(() => {
317321
if (!post) return
318-
const queueData: CreateFeedArgs = {
322+
const queueData: CreateFeedQueueData = {
319323
fk_following_id: signedUserId,
320324
fk_post_id: post.id,
321325
}
322-
this.redis.createFeedQueue(queueData)
326+
this.redis.addToCreateFeedQueue(queueData)
323327
}, 0)
324328

325329
// check spam
326330
setTimeout(() => {
327331
if (!post) return
328332
if (isSpam) return
329333
if (isTusted) return
330-
const queueData: CheckPostSpamArgs = {
334+
const queueData: CheckPostSpamQueueData = {
331335
post_id: post.id,
332336
user_id: signedUserId,
333337
ip,
334338
}
335-
this.redis.addToSpamCheckQueue(queueData)
339+
this.redis.addToCheckPostSpamQueue(queueData)
336340
}, 0)
337341
}
338342

apps/server/src/services/PostService/index.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -405,17 +405,7 @@ export class PostService implements Service {
405405
}
406406
}
407407
public async updatePostScore(postId: string) {
408-
try {
409-
await axios.patch(
410-
`${ENV.cronHost}/api/posts/v1/score/${postId}`,
411-
{},
412-
{
413-
headers: {
414-
'Cron-Api-Key': ENV.cronApiKey,
415-
},
416-
},
417-
)
418-
} catch (_) {}
408+
await this.redis.addToScorePostQueue({ post_id: postId })
419409
}
420410
public shortDescription(post: Post): string {
421411
if (post.short_description) return post.short_description

packages/database/src/velog-redis/index.mts

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ interface Service {
44
connection(): Promise<void>
55
get generateKey(): GenerateRedisKey
66
get queueName(): Record<QueueName, string>
7-
createFeedQueue(data: CreateFeedArgs): Promise<number>
7+
addToCreateFeedQueue(data: CreateFeedQueueData): Promise<number>
8+
addToCheckPostSpamQueue(data: CheckPostSpamQueueData): Promise<number>
9+
addToScorePostQueue(data: ScorePostQueueData): Promise<number>
810
}
911

1012
type RedisOptions = {
@@ -53,17 +55,23 @@ export class RedisService extends Redis.default implements Service {
5355
return {
5456
createFeed: 'queue:feed',
5557
checkPostSpam: 'queue:checkPostSpam',
58+
scorePost: 'queue:scorePost',
5659
}
5760
}
5861

59-
public async createFeedQueue(data: CreateFeedArgs): Promise<number> {
62+
public addToCreateFeedQueue(data: CreateFeedQueueData) {
6063
const queueName = this.queueName.createFeed
61-
return await this.lpush(queueName, JSON.stringify(data))
64+
return this.lpush(queueName, JSON.stringify(data))
6265
}
6366

64-
public async addToSpamCheckQueue(data: CheckPostSpamArgs): Promise<number> {
67+
public addToCheckPostSpamQueue(data: CheckPostSpamQueueData): Promise<number> {
6568
const queueName = this.queueName.checkPostSpam
66-
return await this.lpush(queueName, JSON.stringify(data))
69+
return this.lpush(queueName, JSON.stringify(data))
70+
}
71+
72+
public addToScorePostQueue(data: ScorePostQueueData): Promise<number> {
73+
const queueName = this.queueName.scorePost
74+
return this.lpush(queueName, JSON.stringify(data))
6775
}
6876
}
6977

@@ -81,20 +89,24 @@ type GenerateRedisKey = {
8189
deployBook: (bookId: string) => string
8290
}
8391

84-
type QueueName = 'createFeed' | 'checkPostSpam'
92+
type QueueName = 'createFeed' | 'checkPostSpam' | 'scorePost'
8593

8694
export type ChangeEmailArgs = {
8795
email: string
8896
userId: string
8997
}
9098

91-
export type CreateFeedArgs = {
99+
export type CreateFeedQueueData = {
92100
fk_following_id: string
93101
fk_post_id: string
94102
}
95103

96-
export type CheckPostSpamArgs = {
104+
export type CheckPostSpamQueueData = {
97105
post_id: string
98106
user_id: string
99107
ip: string
100108
}
109+
110+
export type ScorePostQueueData = {
111+
post_id: string
112+
}

0 commit comments

Comments
 (0)