Controllo dell'ordine degli eventi

Il tracciamento video in streaming è un’operazione altamente dipendente dal tempo e occasionalmente le chiamate di tracciamento API di Media Collection arrivano fuori dall’ordine di back-end. In questa situazione, il back-end tenta di mettere in coda e riordinare gli eventi in base alla marca temporale fornita nell'oggetto playerTime . Ciò si verifica con alcuni limiti. Attualmente, il riordino potrebbe non riuscire se i ritardi tra le chiamate fuori servizio sono superiori a un secondo. Negli aggiornamenti futuri, il "tempo di ritardo accettabile" può essere ottimizzato e configurabile.

Esempio di evento fuori ordine

Gli eventi fuori ordine si verificano quando gli eventi passano attraverso la rete che a volte causano un ritardo.

Ad esempio, puoi inviare un evento adBreakStart seguito da un evento adStart . Si tratta di un caso d’uso comune, perché è necessario che un annuncio inizi all’interno di un’interruzione pubblicitaria.

Se l’annuncio è pronto e non è necessario creare un buffer, entrambi gli eventi si verificano quasi istantaneamente e il playerTime.ts per entrambi gli eventi è molto vicino tra loro, ma non dovrebbe mai essere uguale.

"playerTime.ts" degli eventi non dovrebbe mai essere uguale per qualsiasi evento, in quanto l'algoritmo di ordinamento non sarebbe in grado di sapere quale evento si è verificato per primo. Dovrebbe esserci almeno una differenza di 1 millisecondo per ogni 2 eventi consecutivi.

Poiché entrambi gli eventi si verificano molto vicini l'uno all'altro nel momento in cui si attivano le chiamate di rete, è possibile che arrivino fuori servizio. In questo esempio, l’evento adStart arriva prima dell’evento adBreakStart .

È disponibile una finestra temporale di eventi: 5 secondi o un massimo di 10 eventi. Gli eventi vengono bufferizzati prima di inviarli alla pipeline di elaborazione. Quando le condizioni vengono soddisfatte, sono trascorsi 5 secondi o vengono ricevuti più di 10 eventi, gli eventi vengono riordinati in base al playerTime.ts e quindi inviati nel nuovo ordine alla pipeline di elaborazione.

IMPORTANTE

Esiste un evento di eccezione che viene inviato immediatamente alla pipeline di elaborazione ed è l’evento sessionStart .

In questa pagina