priority, seq, token 세 규칙을 표로 잠가야 순서 버그가 줄어든다
우선순위 큐의 계약은 “무엇을 먼저 꺼낼지”, “동점이면 누가 먼저인지”, “오래된 엔트리를 처리해도 되는지” 세 줄로 정리됩니다.
규칙
저장 필드
정상 동작
누락 시 증상
우선순위 방향
`priority` 또는 `deadline`
가장 급한 작업이 top에 온다.
우선순위 역전으로 느슨한 작업이 먼저 처리된다.
동점 처리
`seq`, `timestamp`
같은 priority도 매번 같은 순서로 나온다.
실행마다 pop 순서가 달라져 재현이 어렵다.
무효화
`token`, `version`
최신 작업만 처리하고 stale은 skip한다.
우선순위 변경 전 엔트리가 중복 처리된다.
운영 기준: 로그에도 priority, seq, token을 함께 남겨야 장애 상황의 실제 pop 순서를 재현할 수 있습니다.