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 no estado da tarefa e encerramentos de tarefa.
Uma tarefa de retransmissão de stream puxado pode ter um dos seguintes estados:
|
Estado |
Descrição |
|
Idle |
O estado inicial de uma tarefa criada por uma chamada de API. |
|
Running |
O estado em que a tarefa é iniciada no horário agendado ou reiniciada por uma chamada de API. |
|
Recovering |
O estado em que a tarefa está tentando novamente após um erro de execução. |
|
Offline |
O estado após a tarefa parar porque as tentativas de repetição expiraram ou uma chamada de API a interrompeu. |
|
Exit |
O estado após a tarefa ser excluída, seja ao atingir o horário de término agendado ou por uma chamada de API. |
Callback para alterações no estado da tarefa
Descrição
O sistema aciona um callback quando uma tarefa de retransmissão de stream puxado faz a transição para Running, Recovering ou Offline.
Condições de acionamento
A tarefa faz a transição para
Runningquando é iniciada no horário de início agendado ou reiniciada por uma chamada de API.A tarefa faz a transição para
Recoveringquando encontra um erro durante a execução.A tarefa faz a transição para
Offlinequando uma chamada de API a interrompe ou suas tentativas de repetição expiram.
Callback para encerramento da tarefa
Descrição
O sistema aciona um callback quando uma tarefa de retransmissão de stream puxado é encerrada. O encerramento significa que o sistema removeu a tarefa expirada.
Condições de acionamento
A tarefa faz a transição para
Exitquando o sistema a exclui por ter atingido o horário de término agendado.A tarefa faz a transição para
Exitquando uma chamada de API a exclui.
Payload do callback
O sistema envia o callback como um objeto JSON no corpo da requisição de uma solicitação HTTP POST para a sua URL de callback. Analise o corpo da requisição para obter o conteúdo do callback.
-
Parâmetros e payload de exemplo para um callback de alteração de estado da tarefa
Tabela 1. Payload de callback para alterações no estado da tarefa
Parâmetro
Descrição
Event
O nome do evento. Valor fixo:
LivePullToPushRunning.EventTime
A hora em que o evento ocorreu, como um timestamp Unix em segundos.
TaskId
O ID da tarefa.
TaskInfo
As informações da tarefa.
TaskStatus
O estado atual da tarefa. Valores válidos:
-
1: Running
-
2: Recovering
-
3: Offline
TaskInvalidReason
O motivo pelo qual a tarefa foi executada de forma anormal ou parou. Valores válidos:
-
PullStreamFailed: Falha ao puxar o stream. -
PushStreamFailed: Falha ao retransmitir o stream. -
TriggerByUser: Interrompida por uma chamada de API. -
UnknownError: Ocorreu um erro desconhecido. -
RetryTimesOffline: As tentativas de repetição expiraram.
NotaEste parâmetro é retornado apenas quando o estado da tarefa é
Offline.Payload de exemplo
{ "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 payload de exemplo para um callback de encerramento de tarefa
Tabela 2. Payload de callback para encerramento da tarefa
Parâmetro
Descrição
Event
O nome do evento. Valor fixo:
LivePullToPushExit.EventTime
A hora em que o evento ocorreu, como um timestamp Unix em segundos.
TaskId
O ID da tarefa.
TaskInfo
As informações da tarefa.
TaskStatus
O estado atual da tarefa. Valor válido:
-
-1: Exit
TaskExitTime
A hora em que a tarefa foi encerrada, como um timestamp Unix em segundos.
TaskExitReason
O motivo do encerramento da tarefa. Valores válidos:
-
TriggerByUser: Excluída por uma chamada de API. -
OverEndTime: O horário de término agendado foi atingido.
Payload de exemplo
{ "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", } -