이벤트 순서 제어 controlling-the-order-of-events
스트리밍 비디오 추적은 매우 시간 의존적인 작업이며 때로는 미디어 컬렉션 API 추적 호출이 잘못된 백엔드에 도착합니다. 이 경우, 백 엔드는 playerTime
개체에 제공된 타임스탬프를 기반으로 하여 이벤트 대기 및 재정렬을 시도합니다. 이로 인해 일부 제한 사항이 발생합니다. 현재 순서가 잘못된 호출 사이의 지연 시간이 2초 이상이면 순서 조정이 실패할 수 있습니다. 향후 업데이트에서 '허용 가능한 지연 시간'을 최적화하고 구성할 수 있습니다.
잘못된 이벤트 예
이벤트가 때때로 지연을 유발하는 네트워크를 통과할 때 잘못된 이벤트가 발생합니다.
예를 들어 adBreakStart
이벤트 다음에 adStart
이벤트를 보낼 수 있습니다. 광고가 광고 브레이크 내에 시작되기 위해 필요하기 때문에 이는 일반적인 사용 사례입니다.
광고가 준비되었고 버퍼가 필요하지 않은 경우, 두 이벤트가 거의 즉시 발생하고 두 이벤트의 playerTime.ts
가 서로 매우 가깝지만 결코 같아서는 안 됩니다.
정렬 알고리즘이 먼저 발생한 이벤트를 알 수 없기 때문에 이벤트의 “playerTime.ts”는 모든 이벤트에 대해 동일해서는 안 됩니다. 2개의 연속 이벤트마다 최소 1밀리초의 타임스탬프 차이가 있어야 합니다.
네트워크 호출을 시작할 때 두 이벤트가 서로 매우 가까운 시간에 발생하기 때문에 잘못된 순서로 도착할 수 있습니다 이 예에서 adStart
이벤트는 adBreakStart
이벤트 전에 도착합니다.
5초 또는 최대 10개의 이벤트와 같이 시간이 지정된 이벤트 창이 있습니다. 이벤트는 처리 파이프라인으로 보내기 전에 버퍼링됩니다. 조건이 충족되면(5초가 경과하거나 10개가 넘는 이벤트가 수신됨) 이벤트는 playerTime.ts
를 기준으로 재정렬된 다음, 새로운 순서로 처리 파이프라인으로 전송됩니다.
sessionStart
이벤트입니다.