Блок считается вышедшим в эфир¶
В некоторых случаях необходим критерий - блок уже вышел в эфир целиком. Причем, это не точное время, а сам факт, что это уже точно произошло.
Например, в таком блоке уже не нужно обновлять элементы из МБД или можно начать расчет его громкости.
Последний отмечен галочкой¶
Блок считается вышедшим в эфир полностью:
Если в блоке последний элемент отмечен как вышедший в эфир (пропуская с конца те, которые отмечены Skip) и текущее время позднее времени окончания звучания этого элемента.
T current >= T last start + L last + 5 sec
T current - текущее время
T last start - время начала звучания последнего эл-та блока
L rest - полная длина последнего элемента блока.
По планируемому времени¶
В остальных случаях:
- последний элемент решили не играть и не отмечать Skip
- расписании вообще не фиксируется время выхода
Блок считается вышедшим в эфир просто по попаданию в прошлое планируемого время окончания. Если планируемое время окончания в прошлом на фиксированный таймаут.
Сейчас таймаут настраивается в настройках обновления элементов из МБД.
T current >= T block plan time + L block plan + T imeout
T block plan time - плановое время начала блока
L block plan - плановая длительность блока
T imeout - таймаут, настраиваемый в общих настройках приложения, см: #44896
Таймаут должен гарантированно перекрывать возможные по времени отклонения выхода блока.
Игнорирование блоков без вышедших в эфир элементов¶
Если в блоке вообще нет элементов, отмеченных как вышедшие в эфир, то некоторые компоненты могут не считать блок вышедшим в эфир, т.к. отсутствуют критерии для четкого определения времени начала вещания.