✨ Feature - 스케줄러의 Job을 Redis로 관리하는 기능 추가 #105
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related issue 🛠
closed #104
어떤 변경사항이 있었나요?
CheckPoint ✅
PR이 다음 요구 사항을 충족하는지 확인하세요.
Work Description ✏️
스케줄러에 Job이 등록되어있는 상황에서 Main Server가 버전업데이트 등의 이슈로 내려가면, 등록된 Job들이 전부 죽어버리는 문제가 발생했다.
서비스 로직 상, 이벤트가 생성되기 위해서는 이전의 이벤트가 끝나야만 했는데, 스케줄러에 등록된 Job이 죽어버림으로써 이후 서버 재실행 시 가게에 대한 새로운 이벤트가 생성되지 않는 문제로 이어졌다.
글로벌 Job Queue에 스케줄러가 수행해야할 Job을 등록함으로써 이를 해결한다.
스케줄러에 등록됨과 동시에 해당 Job 내용을 Redis에 저장하고, 서버가 재실행 될 시 Redis에서 Trigger Time을 불러와, 현재 시각과 비교하여 이미 지난 Job이라면 즉시 실행하고, 미래의 Job이라면 스케줄러에 재등록한다.
Uncompleted Tasks 😅
N/A
To Reviewers 📢