한 글자 변경은 큐 경계의 계약을 고친다
수정은 구분자를 하이픈으로 바꾸는 것이다. 다음은 실제 옵션을 발췌한 코드다.
{
jobId: `turn-${input.questionMessageId}`,
} 같은 질문 ID에는 같은 잡 ID를 사용해 큐 안의 중복을 막는다. 큐에서 작업 기록이 제거된 뒤까지 영구적으로 한 번만 실행된다는 보장은 아니다.
생산자 테스트는 mock add에 전달한 ID, 대상 조건과 옵션 오류의 skip, Redis 오류를 답변에 전파하지 않는 동작을 확인한다. mock은 BullMQ의 ID 검증을 실행하지 않아서 이전의 잘못된 문자열도 기대값과 일치하면 통과할 수 있었다. 호출 인자를 확인하는 검사와 의존 라이브러리가 그 인자를 받아들이는 검사는 다르다. 이 경로에서는 사용자에게 전달되지 않는 실패를 warning에서 확인할 책임도 남는다.