Skip to content

Commit 1cc7099

Browse files
committed
fix: stargazer 집계 실패시 Application이 뜨지 않는 버그를 수정한다
1 parent f271908 commit 1cc7099

File tree

3 files changed

+27
-15
lines changed

3 files changed

+27
-15
lines changed

src/main/kotlin/org/gitanimals/core/JacksonConfig.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,5 @@ class JacksonConfig {
2525
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
2626
.configure(DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES, false)
2727
.configure(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES, false)
28-
2928
}
3029
}

src/main/kotlin/org/gitanimals/star/infra/GithubStargazerApi.kt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.gitanimals.star.infra
22

3+
import com.fasterxml.jackson.annotation.JsonCreator
34
import org.springframework.beans.factory.annotation.Value
45
import org.springframework.context.annotation.Profile
56
import org.springframework.core.io.ClassPathResource
@@ -61,33 +62,33 @@ class GithubStargazerApi(
6162
}
6263
}
6364

64-
data class GithubStargazerGraphqlResponse(
65+
data class GithubStargazerGraphqlResponse @JsonCreator constructor(
6566
val data: Data,
6667
) {
67-
data class Data(
68+
data class Data @JsonCreator constructor(
6869
val repository: Repository,
6970
) {
70-
data class Repository(
71+
data class Repository @JsonCreator constructor(
7172
val stargazers: StargazersResponse,
7273
)
7374
}
7475
}
7576

76-
data class StargazersResponse(
77+
data class StargazersResponse @JsonCreator constructor(
7778
val edges: List<StarPushedPeople>,
7879
val pageInfo: PageInfo,
7980
) {
8081

81-
data class StarPushedPeople(
82+
data class StarPushedPeople @JsonCreator constructor(
8283
val starredAt: String,
8384
val node: Node,
8485
) {
85-
data class Node(
86+
data class Node @JsonCreator constructor(
8687
val login: String,
8788
)
8889
}
8990

90-
data class PageInfo(
91+
data class PageInfo @JsonCreator constructor(
9192
val endCursor: String,
9293
val hasNextPage: Boolean,
9394
)

src/main/kotlin/org/gitanimals/star/infra/StargazerBatchJob.kt

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.gitanimals.star.infra
22

33
import org.gitanimals.star.domain.StargazerService
4+
import org.slf4j.LoggerFactory
45
import org.springframework.boot.context.event.ApplicationStartedEvent
56
import org.springframework.context.annotation.Profile
67
import org.springframework.context.event.EventListener
@@ -14,21 +15,32 @@ class StargazerBatchJob(
1415
private val stargazerService: StargazerService,
1516
) {
1617

18+
private val logger = LoggerFactory.getLogger(this::class.simpleName)
19+
1720
@EventListener(ApplicationStartedEvent::class)
1821
fun initStargazer() {
1922
updateStargazer()
2023
}
2124

2225
@Scheduled(cron = EVERY_DAY)
2326
fun updateStargazer() {
24-
val stargazers = githubStargazerApi.getStargazers()
25-
stargazerService.updateAll(
26-
stargazers.flatMap { stargazer ->
27-
stargazer.edges.map { edge ->
28-
edge.node.login
27+
runCatching {
28+
val stargazers = githubStargazerApi.getStargazers()
29+
stargazerService.updateAll(
30+
stargazers.flatMap { stargazer ->
31+
stargazer.edges.map { edge ->
32+
edge.node.login
33+
}
2934
}
30-
}
31-
)
35+
)
36+
}.onSuccess {
37+
logger.info("[StargazerBatchJob] Success to aggregation stargazer counts.")
38+
}.onFailure {
39+
logger.error(
40+
"[StargazerBatchJob] Fail to aggregation stargazer counts. cause: ${it.message}",
41+
it
42+
)
43+
}
3244
}
3345

3446

0 commit comments

Comments
 (0)