Os callbacks de retransmissão de stream puxado notificam sua aplicação quando uma tarefa muda de estado ou é encerrada. Este tópico aborda as condições de acionamento e exemplos de payloads de callback.
Eventos de callback
Os callbacks de retransmissão de stream puxado abrangem dois tipos de eventos: alterações de estado da tarefa e encerramento da tarefa.
Uma tarefa de retransmissão de stream puxado pode apresentar um dos seguintes estados:
|
Estado |
Descrição |
|
Idle |
Estado inicial de uma tarefa criada por chamada de API. |
|
Running |
Estado em que a tarefa inicia no horário agendado ou é reiniciada por chamada de API. |
|
Recovering |
Estado em que a tarefa tenta nova execução após um erro. |
|
Offline |
Estado atingido quando a tarefa para devido ao tempo limite das tentativas de repetição ou por chamada de API. |
|
Exit |
Estado posterior à exclusão da tarefa, seja pelo fim do tempo agendado ou por chamada de API. |
Callback para alteração de estado da tarefa
Descrição
O sistema aciona um callback quando uma tarefa de retransmissão de stream puxado transita para Running, Recovering ou Offline.
Condições de acionamento
A tarefa transita para
Runningao iniciar no horário programado ou quando reiniciada por chamada de API.A transição para
Recoveringocorre caso a tarefa encontre um erro durante a execução.O estado muda para
Offlinese uma chamada de API interromper a tarefa ou se as tentativas de repetição atingirem o tempo limite.
Callback para encerramento da tarefa
Descrição
Um callback é disparado quando a tarefa de retransmissão de stream puxado é encerrada. O encerramento indica que o sistema removeu a tarefa expirada.
Condições de acionamento
A tarefa passa para o estado
Exitquando o sistema a exclui ao atingir o horário final agendado.A transição para
Exitacontece mediante exclusão por chamada de API.
Payload do callback
O callback é enviado como um objeto JSON no corpo de uma requisição HTTP POST para sua URL de callback. Analise o corpo da requisição para obter o conteúdo do callback.
-
Parâmetros e exemplo de payload para callback de alteração de estado da tarefa
Tabela 1. Payload de callback para alterações de estado da tarefa
Parâmetro
Descrição
Event
Nome do evento. Valor fixo:
LivePullToPushRunning.EventTime
Momento da ocorrência do evento, representado como timestamp Unix em segundos.
TaskId
ID da tarefa.
TaskInfo
Informações da tarefa.
TaskStatus
Estado atual da tarefa. Valores válidos:
-
1: Running
-
2: Recovering
-
3: Offline
TaskInvalidReason
Motivo da execução anormal ou parada da tarefa. Valores válidos:
-
PullStreamFailed: Falha ao puxar o stream. -
PushStreamFailed: Falha na retransmissão do stream. -
TriggerByUser: Interrompida por chamada de API. -
UnknownError: Ocorreu um erro desconhecido. -
RetryTimesOffline: Tempo limite das tentativas de repetição esgotado.
NotaEste parâmetro é retornado apenas quando o estado da tarefa é
Offline.Exemplo de payload
{ "Event": "LivePullToPushRunning", "EventTime": "1725501246", "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "TaskInfo": { "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "StartTime": "2024-09-05T01:54:00Z", "EndTime": "2024-09-05T01:58:00Z", "SourceUrls": [ "\"http://fyl-*******-*****.oss-cn-beijing.aliyuncs.com/record/caster/741584e2557248e98ef332d41e4afc3d/2024-08-30-18:19:40_2024-08-30-18:21:09.mp4\"" ], "DstUrl": "rtmp://pushtest.******.aliyunlive.com/pulltest38/pulltest-w38", "CallbackURL": "https://1833220977******.cn-shanghai.lc.aliyuncs.com/workflows/lc-uf6sd1382ikolc/triggers/manual/methods/invoke?ApiVersion=2018-12-12&Signature=TZT7CGDgc299cC2dtL73Yeq4xY8", "Offset": 0, "SourceType": "url" }, "TaskStatus": "1" } -
-
Parâmetros e exemplo de payload para callback de encerramento da tarefa
Tabela 2. Payload de callback para encerramento da tarefa
Parâmetro
Descrição
Event
Nome do evento. Valor fixo:
LivePullToPushExit.EventTime
Momento da ocorrência do evento, representado como timestamp Unix em segundos.
TaskId
ID da tarefa.
TaskInfo
Informações da tarefa.
TaskStatus
Estado atual da tarefa. Valor válido:
-
-1: Exit
TaskExitTime
Horário de encerramento da tarefa, em timestamp Unix (segundos).
TaskExitReason
Motivo do encerramento da tarefa. Valores válidos:
-
TriggerByUser: Excluída por chamada de API. -
OverEndTime: Horário final agendado atingido.
Exemplo de payload
{ "Event": "LivePullToPushExit", "EventTime": "1725501483", "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "TaskInfo": { "TaskId": "08a1b00c-9c2f-4dfa-9f5d-878f2505****", "StartTime": "2024-09-05T01:54:00Z", "EndTime": "2024-09-05T01:58:00Z", "SourceUrls": [ "\"http://fyl-******-****.oss-cn-beijing.aliyuncs.com/record/caster/741584e2557248e98ef332d41e4afc3d/2024-08-30-18:19:40_2024-08-30-18:21:09.mp4\"" ], "DstUrl": "rtmp://pushtest.*****.aliyunlive.com/pulltest38/pulltest-w38", "CallbackURL": "https://1833220977******.cn-shanghai.lc.aliyuncs.com/workflows/lc-uf6sd1382ikolc/triggers/manual/methods/invoke?ApiVersion=2018-12-12&Signature=TZT7CGDgc299cC2dtL73Yeq4xY8", "Offset": 0, "SourceType": "url" }, "TaskStatus": "-1", "TaskExitTime": "1725501483", "TaskExitReason": "OverEndTime", } -