feat(ranking): 스냅샷 job 상태 로그를 추가한다
This commit is contained in:
@@ -5,6 +5,7 @@ import kr.co.vividnext.sodalive.v2.ranking.port.out.CreatorRankingSnapshotJobPor
|
||||
import kr.co.vividnext.sodalive.v2.ranking.port.out.CreatorRankingSnapshotJobRecord
|
||||
import kr.co.vividnext.sodalive.v2.ranking.port.out.CreatorRankingSnapshotJobStatus
|
||||
import kr.co.vividnext.sodalive.v2.ranking.port.out.CreatorRankingSnapshotJobTrigger
|
||||
import org.slf4j.LoggerFactory
|
||||
import org.springframework.stereotype.Service
|
||||
import org.springframework.transaction.annotation.Transactional
|
||||
import java.time.LocalDateTime
|
||||
@@ -17,6 +18,7 @@ class CreatorRankingSnapshotJobService(
|
||||
private val jobPort: CreatorRankingSnapshotJobPort,
|
||||
private val nowProvider: () -> ZonedDateTime = { ZonedDateTime.now() }
|
||||
) {
|
||||
private val log = LoggerFactory.getLogger(javaClass)
|
||||
private val periodPolicy = CreatorRankingPeriodPolicy()
|
||||
|
||||
@Transactional
|
||||
@@ -37,11 +39,14 @@ class CreatorRankingSnapshotJobService(
|
||||
)
|
||||
val jobId = job.id ?: return
|
||||
jobPort.markProcessing(jobId, LocalDateTime.now())
|
||||
logJobStatusChanged(job, CreatorRankingSnapshotJobStatus.PROCESSING)
|
||||
try {
|
||||
refreshService.refreshLastCompletedWeek(now)
|
||||
jobPort.markDone(jobId, LocalDateTime.now())
|
||||
logJobStatusChanged(job, CreatorRankingSnapshotJobStatus.DONE)
|
||||
} catch (ex: Exception) {
|
||||
jobPort.markFailed(jobId, LocalDateTime.now(), ex.message)
|
||||
logJobStatusChanged(job, CreatorRankingSnapshotJobStatus.FAILED, ex.message)
|
||||
throw ex
|
||||
}
|
||||
}
|
||||
@@ -83,4 +88,21 @@ class CreatorRankingSnapshotJobService(
|
||||
|
||||
jobPort.markPending(jobId)
|
||||
}
|
||||
|
||||
private fun logJobStatusChanged(
|
||||
job: CreatorRankingSnapshotJobRecord,
|
||||
status: CreatorRankingSnapshotJobStatus,
|
||||
error: String? = null
|
||||
) {
|
||||
log.info(
|
||||
"event=creator_ranking_snapshot_job_status_changed " +
|
||||
"jobId={} trigger={} status={} aggregationStartAtUtc={} aggregationEndAtUtc={} error={}",
|
||||
job.id,
|
||||
job.trigger,
|
||||
status,
|
||||
job.aggregationStartAtUtc,
|
||||
job.aggregationEndAtUtc,
|
||||
error
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user