레디스로 커스텀한 Queue 시스템 제작
Redis 구조
Job
- 각 디렉토리별 실행 할 Job 의 대한 데이터
Key : {app_name}:schedule:{unique-key}:{step}:{directory}
Key |
Value |
Example |
command |
실행 커맨드 |
실행 커맨드 명 |
uniqueKey |
uniqueKey 값 |
61e91b322847182135 |
Step
Step |
Definition |
standby |
job 대기 상태 |
processing |
job 실행 상태 |
completed |
job 완료 상태 |
failed |
job 실패 상태 |
Manage
- kernel.php 에 등록한 job 하나에 대한 디렉토리들을 관리하는 데이터
Key : {app_name}:schedule:manage:{unique-key}
Key |
Value |
Example |
startTime |
Job 시작시간 |
2022-01-20 15:40:01 |
totalCount |
Job 실행할 모든 개수 |
20 |
uniqueKey |
job 고유 키 값 |
61e903c16c2b150852 |
failedCount |
실패 개수 |
1 |
completedCount |
성공 개수 |
19 |
endTime |
job 종료시간 |
2022-01-20 16:41:02 |
데이터 흐름
Complete 와 Failed 된 데이터를 서비스에 로그형태로 구성하고, 해당 레디스의 상태를 읽어서 관리페이지를 만듦