가격을 대량으로 바꿨는데 대상이 칠만 건을 넘는 규모였다. 매시 도는 배치가 재연동 작업을 만들어 준다고 들어서 외부 전송은 자동으로 될 것으로 봤다.
Table of contents
Open Table of contents
자동 전파를 전제한 작업
그 전제는 누군가에게서 들은 말이었을 뿐 직접 확인한 적은 없었다. 그럴듯하게 들렸고 반박할 이유도 없어 보였다.
다만 그 전제가 틀리면 옛 가격이 외부 채널에 계속 걸려 있게 된다. 틀렸을 때의 결과가 큰 쪽이므로 다음 날 실제로 만들어진 작업을 세어 봤다.
커버리지를 세어 본 결과
만들어진 재연동 작업은 네 채널에서 이천 건 남짓이고 나머지 여덟 채널은 하나도 없었다. 칠만 건 중 삼 퍼센트가 안 되는 수준이었다.
전파됐다는 느낌과 실제 커버리지는 쿼리 하나로 갈리고 그 하나를 안 돌리면 몇 퍼센트인지 모른 채로 넘어간다. 나머지 채널에는 옛 가격이 그대로 걸려 있었다.
배치가 실제로 훑는 대상
배치 코드를 열어 보니 종료된 행사에 명시적으로 등록된 상품만 처리하고 있었다. 전체 상품을 훑는 구조가 아니었다.
대량 변경한 그 거래처는 행사가 아예 없었으므로 처리 대상이 하나도 없었다. 배치가 무엇을 대상으로 하는지를 확인하면 그 전제가 성립하지 않는다는 것이 바로 나왔을 것이다.
한 번만 발화하는 이벤트
각 행사는 종료 처리될 때 이벤트를 한 번만 발화하고 그 뒤로는 대상에서 빠진다. 재생성하는 경로가 없으므로 그때 놓치면 다시 만들어지지 않는다.
즉 이 배치는 행사 종료 시 원가로 되돌리는 전용 흐름이고 일반적인 가격 변경 전파와는 무관했다. 전파를 보장하려면 배치에 기대지 않고 전 대상에 갱신 작업을 직접 넣어야 했다.
미완료여도 정상인 상태
작업을 나눠 넣으면서 상태 판정도 정리했는데 실행 시각과 완료 시각의 조합으로 대기와 진행과 완료가 갈렸다. 그중 완료가 안 됐는데도 정상인 경우가 있었다.
판매 중지나 품절 상태이면 시도조차 안 하고 건너뛰며 시도 횟수가 0으로 남는다. 그것을 실패로 세면 실패율이 실제보다 높게 나오므로 건너뜀과 실패를 갈라서 셌다.
정리
- 본체를 바꿔도 자동으로 전파되지 않을 수 있다
- 들은 전제와 실제 동작은 확인 전까지 같지 않다
- 커버리지는 쿼리 하나로 퍼센트가 나온다
- 배치가 전체를 훑는지 특정 대상만 처리하는지 확인한다
- 한 번만 발화하고 재생성이 없는 이벤트가 있다
- 놓치면 다시 만들어지지 않으므로 별도 수단이 필요하다
- 대량 전송은 채널과 시간대를 나눠 넣는다
- 건너뜀과 실패를 갈라야 실패율이 맞는다