스케줄러 및 배경 작업
(섹션: 운영 및 관리)
1) 목적
스케줄러 및 배경 작업은 주기적 계산, 아티팩트 게시, 정리 및 큐 재생 등 플랫폼의 비 사용자 작동을 보장합니다. 목표는 결정론, 결함 내성 및 감사성입니다.
2) 작업 분류
시간 기반: 예약 된 (크론/캘린더): 청소, RTP 창 닫기, 업로드, 보관.
이벤트 중심: 버스에서 트리거 (PaymentsSettled, PriceListuped).
일회성/임시: TTL이있는 일회성 bs.
장기 실행: 백오프/사가, 스트리밍 컴팩트.
유지 보수: 주요 회전, 재 포장, 색인, 캐시 예열.
3) 아키텍처 (참조)
구성 요소:1. 스케줄러 (제어 평면): 일정, CAL/cron, 유지 보수 창, 가장 중요한 항목입니다.
2. 디스패처: → 대기열 (우선 순위/테넌트/지역) 을 계획하고 마감일, demempotent 키를 넣습니다.
3. 작업자: 작업 풀을위한 정적/자동 스케일; 심장 박동, 임대.
4. 큐/버스: FIFO/우선 순위, DLQ, 지연된 메시지.
5. 사물함/조정: 분산 잠금 장치 (임대), 지도자 선거 (Raft/ZK/Consul).
6. Vault/KMS: JIT 비밀, 짧은 TTL.
7. 관찰 가능성: 추적/메트릭/로그, 대시 보드, 경고.
8. 감사/세계: 불변의 실행 영수증, 머클 슬라이스.
패턴: 아웃 박스/CDC, demempotency, 보상 (sagas), 역압, 회로 차단기.
4) 일정: 크론과 캘린더
크론 v3: 두 번째/분/시간/일/월/일; "/5 ", 범위, 목록에 대한 지원.
달력/예외: 비즈니스 캘린더, 침묵 창, 휴일/DST.
시간대: 작업에 'tz' 를 유지하십시오. 세입자의 현지 시간 시작.
다중 지역: 배수/재선택이있는 지역 당 일정 또는 "리드 지역 + 팔로워" 사본.
5) 대기열, 우선 순위, SLA
우선 순위 클래스: P0 (임계), P1, P2, P3; 개별 작업자 풀.
SLA/마감일: 'must _ star _ by', 'must _ finish _ by'; 건너 뛰기-에스컬레이션/리트레이
쿼터와 공정성: 작업/최소/테넌트 한도, "버스트" 토큰, 시끄러운 이웃 격리.
지연/가시성 타임 아웃.
6) 경쟁력과 막힘
임대: 자동 확장 작업 (하트 비트); 타임 아웃-취소.
Mutex/semaphores: 자원 당 (예: "가격 목록 x는 한 명의 작업자 만 씁니다").
샤딩: '테넌트/지역/해시 (키)'; 캐시 및 데이터 위치에 대한 스티커 라우팅.
지도자 선거: 한 지도자가 "시스템" 작업 (예: "모든 RTP 창을 닫음"), 팔로어-뜨거운 대기.
7) 신뢰성: Retrai, demempotency, 데드 업
이데올로기 키: '(task _ style, business _ id, 창)'; 반복 → 동일한 영수증.
Retrai: 지수 백오프 + 지터, 시도 한계, 오류 전략 (재 시도/취소/보상).
독 알약: N 고장 후 DLQ로 빠르게 이동하면 소유자에게 경고하십시오.
데드 업: TTL 창에서 보이는 캐시 (메모리 + KV).
정확히 한 번의 효과: 트랜잭션 로그/영수증을 통한 부작용 확인.
8) 길고 무거운 작업 관리
청킹: 배치로 분류, 체크 포인트/연속.
타임 복싱: CPU/IO/네트워크 탈출 제한; 진행 상황이 저장되면 중단하
사가/보상: 서비스 간 단계를위한 "실행 취소" 의미론.
동시성 한도: 유형/테넌트/지역당 동시 작업 제한.
9) 관찰 가능성 및 지표
추적: 'trace _ id', 사가 단계, 외부 통화.
메트릭 (SLI):- 시작하려면 걸으십시오 (길이, 연령 p95).
- 성공률, 오류율, 재 시도 속도.
- 대기 시간 p50/p95, 시간 완료.
- 1k 작업 당 비용, 탈출/진입.
- DLQ 비율, 독약 비율.
- P0 시작 성공 99 이상. 5%; DLQ 지정 0. 1%; 신선함은 30 초 p95입니다.
10) 감사와 확률
영수증: 시작/성공/오류에 대한 '영수증 _ 해시', 중요한 유형에 대한 DSSE 서명 (지불, 가격표, RTP).
WORM: 실행 로그 및 작업 표시를 저장합니다.
양육권: 일정을 전달/승인/변경 한 사람; SoD 점검.
11) 보안 및 액세스
RBAC/ABAC/ReBAC: 누가/승인/실행하는지; SoD: "결제를 만듭니다"
JIT 비밀: 작업자는 문제 범위에 대해 짧은 TTL로 토큰을 요청합니다.
격리: 임차인/지역/그리드 당 작업자 풀; 샌드 박스 실행.
PII 위생: 마스킹/토큰 화, 기본 로깅 금지.
12) FinOps 및 비용
컴퓨팅/스토리지/이탈에 대한 예산/캡 알림.
대기열과 SLO 별 자동 스케일 작업자.
스토리지 클래스: 핫 (7-30 일) → OLAP (6-24 개월) → 아카이브.
비용 인식 계획: "저렴한 시간" 에 출시 창, 출구 제한.
13) 데이터 모델 (단순화)
14) API 계약 (관리/통합)
'POST/일정' - 일정 (크론/칼, 츠, 창) 을 만듭니다.
'POST/jobs' - 임시 배치; (PHP 3 = 3.0.6, PHP 4)
'GET/jobs/{ id}' - 상태/로그/영수증.
'POST/jobs/{ id }/cleant' -보상으로 취소하십시오.
'GET/대기열/통계' -길이, 지연, p95.
'JobStarted', 'JobSucdrop', 'Jobfailed', 'JobDroppedToDLQ', 'SLOViolated'.
15) 플레이 북 (일반적인 시나리오)
재시도 폭풍: 글로벌 백오프 가능, 의존성 시간 초과, 회로 차단기 가능, 분할 배치.
DLQ 눈사태: 수신 중지, DLQ 구문 분석 우선 순위 지정, 새 작업 버퍼.
리더는 무너졌다: 재선택, demempotency에 의한 "이중 출판물" 검증, 감사.
Hung 제공 업체 (PSP/KYC): 매장량으로의 경로, 폴링/웹 후크의 빈도 감소, 트랜잭션을 검역소로 이전.
유출 된 작업자의 비밀: 주요 해지, 교체, 30 일 만에 "비정상적인" 발사 검색, 권리 검토.
16) iGaming/fintech의 특성
지불/지불: 영수증이있는 비동기 작업, "회색" 거래의 검역, 중복 제거가있는 대기열의 재생.
RTP 창/한계: 달력 닫기, 관찰 된 이론적 RTP 대 표류 할 때 자동 일시 정지 프로모션.
가격 목록/FX/세금: 예정된 출판물, 아티팩트 버전, 캐시 포스 장애.
제휴: 전환 조정, 웹 후크, 행위/서명, 에스크로 분쟁.
17) 품질 지표 (샘플 세트)
일정 준수: 창에서 작업 비율이 99% 이상 시작되었습니다.
큐 래그 p95: P0 방향 60 c, P1 방향 5 분
성공/재시도/DLQ 속도: 5% / ≤ 0. 4% / ≤ 0. 1%.
Idempotency 오류: 자기 0. 01%.
예산 내 비용/1k 일자리 및 탈퇴/작업.
감사 완료: 영수증이 포함 된 100% 중요한 작업.
18) RACI
19) 구현 점검표
- 작업 클래스, 우선 순위 및 SLA 강조; 달력 및 에스코트를 정의하십
- 지도자 선출 및 파쇄를 가진 Scheduler/Dispatcher/Queue/Workers.
- demotency, retrays, DLQ, 보상 (sagas) 을 소개합니다.
- 근로자를위한 RBAC/ABAC/ReBAC, SoD 및 JIT 비밀 설정.
- 추적/메트릭/로그, 대시 보드 및 경고 사용; SLO NLO 오류 예산.
- 중요한 유형에 대한 서명 청구서 (DSSE) 및 WORM 로그.
- 자동 스케일 및 캡 알림 (계산/저장/탈출).
- 플레이 북: 재 시도-스톰, DLQ 눈사태, 리더 실패, 공급자 저하.
- 테스트: 플레이 북 당 게임 데이, 지연/오류 주입.
- 일정, 대기열 차단 및 자동화 ROI에 대한 정기적 인 검토.
20) FAQ
왜 크론이 충분하지 않습니까?
대기열이 없으면 dempotency, 잠금 및 감사가 충돌과 시간대에 따라 크론이 분해됩니다.
시간 기반과 이벤트 중심을 결합 할 수 있습니까?
예: cron-캐치 업 보험; 이벤트-반응성.
"정확히 한 번" 달성하는 방법?
주요 결제, 거래 효과 로그, 영수증 및 부작용.
"긴" 직업으로 무엇을해야합니까?
청크, 검문소, 타임 복싱, 중단 및 계속 기능.
예산을 "먹지 않는" 방법?
대기열과 SLO의 자동 스케일, 무거운 작업을위한 저렴한 시계, 하드 캡이 빠져 나옵니다.
요약: 스케줄러 및 배경 작업은 플랫폼의 생산 파이프 라인입니다. 일정 및 대기열, dempotence, 잠금 및 관찰 가능성을 포함하고 영수증/감사, 임차인 격리 및 FinOps 제어를 추가하면 모든 지역 및로드에서 예측 가능한 마감일, 빠른 복구 및 법적으로 일관된 운영이 가능합니다.