As tarefas de processamento de mídia assíncronas retornam seus resultados em segundo plano, e o tempo entre o envio e a obtenção do resultado depende tanto do agendamento quanto do processamento em si. Este tópico explica o que determina o cronograma de uma tarefa assíncrona, como interpretar o status e o progresso da tarefa e como integrar tarefas assíncronas para que tempos de conclusão variáveis não bloqueiem seus fluxos de trabalho de negócios.
O que é uma tarefa assíncrona?
Uma tarefa assíncrona é uma tarefa de processamento de mídia que o service aceita no momento do envio e depois executa em segundo plano. O resultado fica disponível somente após a conclusão do processamento. O Alibaba Cloud ApsaraVideo VOD, Intelligent Media Services e Media Processing oferecem uma variedade de recursos de processamento de mídia assíncrono.
Um envio bem-sucedido significa apenas que a tarefa foi aceita. Isso não indica que a tarefa começa imediatamente, nem que ela será concluída dentro de um período fixo de tempo.
Por natureza, uma tarefa assíncrona é uma tarefa de processamento offline. Diferentemente de uma API síncrona, o momento em que uma tarefa assíncrona produz seu resultado é afetado pelo agendamento de tarefas, flutuações no volume de tarefas, complexidade da tarefa, características do arquivo source e definições de parâmetros. A duração total da tarefa pode ser significativamente maior que o tempo real de processamento.
Portanto, tarefas assíncronas não são adequadas como condições de bloqueio em fluxos de trabalho de negócios sensíveis à latência. Não utilize os valores de referência de velocidade de processamento deste tópico para estimar prazos de entrega em um ambiente de produção.
Escopo
Este tópico se aplica a tarefas de processamento de mídia iniciadas e executadas de forma assíncrona no ApsaraVideo VOD, Intelligent Media Services e Media Processing, incluindo, mas não se limitando a:
Tarefas de transcodificação de mídia.
Tarefas de edição de mídia.
Tarefas de snapshot e image sprite.
Tarefas de análise de ativos de mídia.
Tarefas de processamento de mídia assíncrono com assistência de IA.
Outras tarefas de processamento de mídia enviadas cujos resultados são obtidos por meio de um mecanismo assíncrono. Os tipos de tarefa podem diferir quanto ao pipeline de processamento, características de duração, status da tarefa, campos de progresso, métodos de consulta e mecanismos de notificação de resultados. Se a documentação de um recurso específico fornecer informações separadas, siga essa documentação do product.
Cronograma geral
Leia esta seção na íntegra antes de iniciar uma tarefa e projete seu fluxo de trabalho de negócios adequadamente. A duração total de uma tarefa assíncrona geralmente consiste em duas partes:
Duração total da tarefa = Tempo de espera + Tempo real de processamento
Tempo de espera: período decorrido entre o envio da tarefa e sua entrada na etapa de processamento efetivo.
Tempo real de processamento: tempo consumido para executar a própria tarefa após ela entrar na etapa de processamento efetivo.
Um ID de tarefa retornado significa apenas que a tarefa foi criada.
O tempo de conclusão que você experimenta na prática é a duração total da tarefa, não apenas o tempo real de processamento.
As descrições de duração de tarefa, valores de referência de velocidade de processamento, exemplos e respostas de FAQ neste tópico descrevem características de processamento apenas em cenários típicos. Eles não constituem um compromisso de service, uma métrica de SLA, uma garantia de entrega ou uma base para compensação de service ou de negócios.
Mesmo que as especificações de uma tarefa sejam próximas às de um exemplo de referência, a duração total da tarefa ainda pode ser significativamente maior devido ao aumento do tempo de espera.
Se o seu negócio tiver requisitos rigorosos quanto ao tempo de conclusão, reserve um tempo de buffer e utilize designs de desacoplamento assíncrono, fallback por timeout e degradação de negócios.
Duração total da tarefa versus tempo real de processamento
Essa distinção é fundamental para entender o cronograma de tarefas assíncronas. As velocidades de processamento, multiplicadores de velocidade e durações exemplificadas neste tópico descrevem apenas a rapidez com que uma tarefa é executada após entrar na etapa de processamento efetivo.
A rapidez com que você obtém o resultado depende de dois fatores:
Quanto tempo a tarefa aguarda antes de entrar na etapa de processamento efetivo.
Quanto tempo a própria tarefa leva para ser efetivamente processada. Portanto:
Um valor de referência de velocidade de processamento descreve apenas o tempo real de processamento, não a duração total da tarefa.
Não é possível derivar o prazo de entrega de uma tarefa a partir de um valor de referência de velocidade de processamento.
Tarefas com as mesmas especificações, enviadas em períodos diferentes, podem apresentar durações totais significativamente distintas.
Tempo de espera
Após o envio de uma tarefa, o service a agenda para a etapa de processamento efetivo com base no tipo de tarefa, no volume de tarefas e nas políticas de processamento.
O tempo de espera pode aumentar nas seguintes situações:
Um grande número de tarefas é enviado em um curto período de tempo.
O volume de tarefas apresenta flutuações significativas no mesmo período.
Tarefas de alta complexidade representam uma grande proporção da fila.
Um envio bem-sucedido não significa que a tarefa entrou na etapa de processamento efetivo.
O tempo de espera pode variar conforme o período de envio, o tipo de tarefa, a escala da tarefa e diferenças entre pipelines de processamento.
Não reenvie a mesma tarefa enquanto ela estiver aguardando. O reenvio pode causar processamento duplicado e aumentar ainda mais o tempo de espera geral.
Utilize callbacks assíncronos para obter resultados de tarefas em vez de polling de alta frequência.
Observe os seguintes pontos sobre o status do service:
O tempo de espera é afetado por muitos fatores, como volume e características das tarefas. Um aumento isolado no tempo de espera não serve como base para determinar um problema no service.
Caso ocorra um problema no service com amplo impacto, a Alibaba Cloud notifica os usuários afetados por mensagem interna, SMS ou outros canais.
Tempo real de processamento
O tempo real de processamento está intimamente relacionado ao tipo de tarefa, às características do arquivo source e à configuração da tarefa. O modelo de duração não é o mesmo para todos os recursos.
Fatores comuns de influência
|
Fator |
Padrão |
Descrição |
|
Duração do arquivo source |
Maior duração geralmente implica maior tempo real de processamento |
Um dos principais fatores para a maioria das tarefas de processamento de mídia. |
|
Especificações de saída |
Especificações mais altas geralmente implicam maior tempo real de processamento |
Por exemplo, resolução mais alta ou formato de saída mais complexo. |
|
Complexidade do algoritmo de processamento |
Algoritmos mais complexos geralmente implicam maior tempo real de processamento |
Por exemplo, transcodificação avançada ou análise complexa. |
|
Parâmetros personalizados |
Parâmetros mais complexos geralmente implicam maior tempo real de processamento |
Por exemplo, parâmetros de aprimoramento ou processamento em múltiplos estágios. |
|
Características do arquivo source |
Características mais complexas geralmente implicam maior flutuação na duração |
Por exemplo, bitrate, taxa de quadros, formato de contêiner ou estrutura de stream. |
|
Tipo de tarefa |
Diferentes tipos de tarefa possuem modelos de duração distintos |
Tarefas de transcodificação, edição, snapshot e image sprite, e análise de ativos de mídia não podem ser comparadas diretamente entre si. |
Diferenças entre tipos de tarefa
Tarefas de transcodificação: o tempo real de processamento geralmente depende da duração do vídeo, resolução, formato de codificação, algoritmo de transcodificação e parâmetros do modelo.
Tarefas de edição: o tempo real de processamento também é afetado pelo número de clipes, necessidade de recodificação, se o corte atravessa keyframes e pela junção de múltiplos clipes.
Tarefas de snapshot, image sprite e análise de ativos de mídia: a forma de interpretar o tempo real de processamento pode diferir das tarefas de transcodificação, e campos de progresso, campos de status e divisões de estágio nem sempre estão disponíveis.
Status e progresso da tarefa
Campos de status, campos de progresso, métodos de consulta e mecanismos de retorno de resultados podem variar entre tarefas assíncronas. A lógica de status neste tópico descreve apenas os estágios comuns de processamento de tarefas assíncronas. Isso não significa que todas as tarefas assíncronas utilizem o mesmo modelo de status.
De modo geral, uma tarefa assíncrona passa do envio para um estágio de espera, depois para o estágio de processamento efetivo e, finalmente, para um estado final de sucesso ou falha.

Observe os seguintes pontos:
Algumas tarefas fornecem um campo de progresso que pode ser consultado.
Algumas tarefas retornam apenas alguns status, como
Processing,SucceededouFailed.Para algumas tarefas,
Waitingnão é um status independente. É necessário interpretá-lo combinando o campo de status com outros campos.Para definições específicas de status, campos de progresso e métodos de consulta, consulte as respostas reais da API e a documentação do product correspondente.
Exemplo: tarefas de transcodificação
O conteúdo a seguir descreve apenas como interpretar o status e a duração de tarefas de transcodificação. Isso não significa que outras tarefas assíncronas utilizem o mesmo mecanismo.
Status de tarefa de transcodificação
Após enviar uma tarefa de transcodificação, o status da tarefa no resultado da consulta pode ser Transcoding. Um status Transcoding indica que a tarefa entrou no fluxo de trabalho de transcodificação, mas não necessariamente que a transcodificação efetiva começou. Utilize o campo TranscodeProgress para determinar com mais precisão o estágio da tarefa.
|
Status da tarefa |
** |
Descrição |
Interpretação recomendada |
|
|
|
A tarefa não entrou na etapa de transcodificação efetiva. |
Aguardando |
|
|
Maior que |
A tarefa entrou na etapa de transcodificação efetiva. |
Transcodificando |
|
|
|
A transcodificação terminou com sucesso. |
Sucesso |
|
|
Não aplicável |
A transcodificação terminou anormalmente. |
Falha |
Para tarefas de transcodificação, o estado de espera geralmente não é uma enumeração de status independente. Trata-se de um estágio determinado pela combinação do status da tarefa com o progresso da transcodificação.
Referência de velocidade de processamento de transcodificação
Os valores de referência a seguir descrevem a velocidade de processamento de tarefas de transcodificação após entrarem na etapa de processamento efetivo, sob condições típicas de teste. Eles excluem o tempo de espera e não representam a duração total da tarefa.
Multiplicador de velocidade
Multiplicador de velocidade: o múltiplo da duração do vídeo que pode ser processado por unidade de tempo de processamento.
Por exemplo, velocidade de 3x significa que cerca de 3 minutos de conteúdo de vídeo podem ser processados a cada 1 minuto de tempo de processamento. Para um vídeo de 30 minutos, o tempo teórico de processamento efetivo é de aproximadamente 10 minutos, excluindo o tempo de espera.
Valores de referência por algoritmo de transcodificação
A tabela a seguir utiliza um cenário típico de transcodificação H.264 720p como referência e descreve as características de velocidade de processamento de diferentes algoritmos de transcodificação.
|
Algoritmo de transcodificação |
Referência de velocidade de processamento |
Descrição |
|
Transcodificação padrão |
Cerca de 3x de velocidade |
Reflete apenas a velocidade da etapa de processamento sob condições típicas. |
|
Narrowband HD 1.0 |
Cerca de 1,5x de velocidade |
O tempo real de processamento geralmente é maior que o da transcodificação padrão. |
|
Narrowband HD 2.0 |
Geralmente muito inferior a 1x de velocidade |
O tempo real de processamento costuma ser maior que a duração do vídeo source. O tempo efetivo depende da tarefa específica. |
Os valores de referência anteriores aplicam-se apenas a cenários típicos de transcodificação H.264 720p.
Para resoluções mais altas, codificação mais complexa e parâmetros mais pesados, a velocidade de processamento geralmente é inferior aos valores de referência anteriores.
Diferenças no bitrate, taxa de quadros, formato de contêiner e estrutura de stream dos vídeos source podem afetar significativamente o tempo real de processamento.
A complexidade de processamento do Narrowband HD 2.0 geralmente é significativamente maior que a da transcodificação padrão e do Narrowband HD 1.0.
Para a duração real de uma tarefa específica, consulte o resultado da consulta de status da tarefa ou a notificação de conclusão.
Ciclo de vida da tarefa e obtenção de resultados
Envio de tarefa
Ao enviar uma tarefa assíncrona por meio de uma API, o service retorna um ID de tarefa. O ID da tarefa é o identificador exclusivo utilizado para consultar o status, correlacionar notificações de resultado e solucionar problemas. Registre o ID da tarefa em seu próprio sistema.
Notificação de resultado
Após o processamento de uma tarefa, o service pode enviar uma notificação de resultado caso uma URL de callback esteja configurada. Você pode confiar no callback para detectar a conclusão da tarefa automaticamente, sem necessidade de polling contínuo.
Uso de callbacks
Se a URL de callback estiver inacessível, o service tenta novamente automaticamente de acordo com uma política predefinida.
Se a entrega ainda falhar após várias tentativas, utilize a API de consulta para confirmar o status final da tarefa.
Notificações de callback podem sofrer atrasos ou ser entregues mais de uma vez devido a flutuações de rede ou exceções no seu lado.
Sua lógica de tratamento de callback deve realizar uma verificação de idempotência com base no ID da tarefa.
Para o status final da tarefa, consulte o resultado retornado pela API de consulta. Para detalhes sobre as configurações de callback e o mecanismo de nova tentativa, consulte Callback configuration.
Consultas de tarefa
É possível utilizar um ID de tarefa para consultar o status atual e o resultado do processamento de uma tarefa. A API de consulta retorna principalmente o status da tarefa, o progresso e as informações de resultado.
Consulte uma tarefa nos seguintes cenários:
Nenhuma notificação de callback está configurada.
Um callback está configurado, mas você precisa verificar o progresso atual.
A duração total da tarefa excede suas expectativas de negócios.
Um fallback é necessário quando uma notificação de callback não é recebida.
Solução geral de problemas
Estabeleça sua linha de base de expectativa a partir do modelo de duração total da tarefa: o tempo real de processamento que o tipo e as especificações da tarefa normalmente exigem, mais um tempo de buffer para o estágio de espera. Se a duração total da tarefa exceder essa linha de base, examine as mudanças de status da tarefa, o horário de envio e a configuração da tarefa e, em seguida, execute as etapas a seguir.
Etapa 1: Confirmar se a tarefa foi concluída
Utilize o ID da tarefa para consultar o status atual ou o resultado da tarefa:
Se a tarefa estiver concluída, obtenha o resultado e avalie a duração total da tarefa. Nenhuma etapa adicional é necessária.
Se a tarefa falhou, verifique o código de erro e a mensagem de erro e corrija o problema conforme indicado.
Se a tarefa não estiver concluída, continue para a Etapa 2 para determinar se a tarefa está no estágio de espera ou no estágio de processamento efetivo.
Etapa 2: Determinar o estágio atual com base no tipo de tarefa
Para tarefas de transcodificação: utilize o status
Transcodingjuntamente comTranscodeProgresspara determinar se a tarefa entrou na etapa de transcodificação efetiva.Para outras tarefas assíncronas: consulte os campos retornados pela API de consulta da tarefa correspondente e sua documentação. Não aplique diretamente o método de interpretação para tarefas de transcodificação. Se a tarefa não entrou na etapa de processamento efetivo, ela ainda está aguardando agendamento. Aguarde o service agendar a tarefa e não a reenvie. Se a tarefa já estiver na etapa de processamento efetivo, continue para a Etapa 3.
Etapa 3: Identificar possíveis causas com base nas características da tarefa
|
Sintoma |
Possível causa |
Ação recomendada |
|
Nenhum resultado retornado por um longo período |
Flutuação no volume de tarefas, aumento do tempo de espera, problema no service ou alta complexidade da tarefa |
Confirme se a tarefa ainda está aguardando agendamento. Um aumento isolado no tempo de espera não indica um problema no service. |
|
O tempo real de processamento é significativamente maior que o de tarefas comuns |
Arquivo source complexo, parâmetros pesados ou alta complexidade da tarefa |
Verifique o arquivo source e a configuração em relação aos fatores em Actual processing time. |
|
A tarefa falhou |
Arquivo source anormal, erro de parâmetro ou erro de processamento |
Verifique a descrição do código de erro e corrija o problema conforme indicado. |
|
A consulta não retorna nenhum resultado |
ID de tarefa incorreto ou tarefa não enviada com sucesso |
Verifique o resultado do envio e o ID da tarefa. |
Se nenhuma das ações anteriores resolver o problema, continue para a Etapa 4.
Etapa 4: Coletar informações para o suporte técnico
Para obter ajuda do suporte técnico, forneça as seguintes informações sempre que possível:
O ID da tarefa.
O horário de envio da tarefa.
O tipo de tarefa, como transcodificação, edição, snapshot e image sprite, ou análise de ativos de mídia.
A duração, resolução e formato de codificação do arquivo source.
A configuração do modelo ou os parâmetros de processamento.
Se as tarefas foram enviadas em lote.
Os sintomas do problema e o escopo do impacto.
Métodos de integração recomendados
|
Método |
Descrição |
Cenários |
|
Callback assíncrono (Recomendado) |
O service envia o resultado após a conclusão da tarefa. |
Ambientes de produção e cenários formais de negócios. |
|
Polling |
Consulta periodicamente o status e o resultado da tarefa. |
Depuração, testes e como fallback quando callbacks falham. |
Recomendações de integração
Para reduzir o impacto das flutuações de latência de tarefas assíncronas em seus negócios, siga estas recomendações:
Utilize desacoplamento assíncrono para processar tarefas de mídia no design do seu sistema.
Detecte resultados de tarefas por meio de callbacks assíncronos ou consultas de status em vez de esperar sincronamente, e utilize callbacks assíncronos em ambientes de produção.
Evite polling de alta frequência para reduzir requisições inválidas.
Implemente controle de idempotência ao enviar tarefas para evitar envios duplicados.
Escalone o envio de tarefas em lote para evitar filas grandes em curtos períodos de tempo.
Configure monitoramento de timeout de tarefas, alertas, intervenção manual e mecanismos de fallback de negócios.
Para cenários críticos de negócios, horários de pico, tarefas em lote e tarefas complexas, reserve tempo de buffer suficiente e elabore um plano de degradação de negócios.
FAQ
Uma tarefa de transcodificação 720p de 10 minutos sempre termina em 3 a 4 minutos?
Não necessariamente. O valor de referência de cerca de 3x de velocidade descreve a velocidade de processamento de uma tarefa de transcodificação após ela entrar na etapa de processamento efetivo, sob condições típicas de teste. Ele exclui o tempo de espera antes de a tarefa entrar na etapa de processamento efetivo e não representa a duração total da tarefa em um ambiente de produção.
O momento em que o resultado fica disponível é determinado pela duração total da tarefa. Não derive o prazo de entrega de uma tarefa a partir dos valores de referência de velocidade de processamento.
Se a duração total da tarefa exceder suas expectativas de negócios, siga as etapas em General troubleshooting.
Por que o status da minha tarefa de transcodificação mostra Transcoding enquanto TranscodeProgress permanece em 0?
Para tarefas de transcodificação, um status Transcoding indica que a tarefa entrou no fluxo de trabalho de transcodificação, o que não equivale ao início da transcodificação efetiva. Quando TranscodeProgress é 0, a tarefa ainda está no estágio de espera. Quando TranscodeProgress é maior que 0, a tarefa entrou na etapa de transcodificação efetiva.
Minhas especificações de tarefa são próximas ao cenário de referência. Por que a duração total da tarefa é significativamente maior?
Possíveis razões incluem, mas não se limitam a:
A tarefa aguardou por um longo período antes de entrar na etapa de processamento efetivo.
As características reais do arquivo source diferem do cenário típico de referência.
Os parâmetros da tarefa ou a configuração do modelo são mais complexos que o habitual.
Flutuações no volume de tarefas no mesmo período aumentaram a duração total da tarefa. Para confirmar melhor a causa, solicite assistência do suporte técnico e forneça o ID da tarefa.
Um aumento no tempo de espera sempre indica um problema no service?
Não necessariamente. O tempo de espera é afetado por muitos fatores, como volume e características das tarefas. Um aumento isolado no tempo de espera não serve como base para determinar um problema no service. Para confirmar o status atual do service, solicite assistência do suporte técnico.
Posso usar os valores de referência de velocidade de processamento para definir o prazo de entrega do meu negócio?
Não. Os valores de referência de velocidade de processamento servem apenas para ajudar a entender as características de processamento das tarefas. Não os utilize como base para prazos de entrega em produção, SLAs de negócios ou compromissos com seus usuários finais.
Para cenários de negócios com requisitos rigorosos de cronograma, reserve tempo de buffer em sua arquitetura de negócios e configure mecanismos de fallback por timeout e degradação.
Posso interpretar o status de outras tarefas assíncronas da mesma forma que tarefas de transcodificação?
Não necessariamente. O status Transcoding e o campo TranscodeProgress no exemplo de transcodificação são específicos para tarefas de transcodificação.
Para tarefas de edição, snapshot e image sprite, análise de ativos de mídia e outras tarefas assíncronas, os campos de status, os campos de progresso e os métodos de interpretação podem diferir daqueles das tarefas de transcodificação. Consulte a API de consulta da tarefa específica e a documentação do product correspondente.
SLA e escopo de responsabilidade
Se você suspeitar que um atraso no processamento da tarefa foi causado por um problema no service, solicite assistência do suporte técnico e forneça o ID da tarefa e informações relacionadas.
A disponibilidade do service, a responsabilidade e o escopo de compensação são regidos pelos Termos de Service oficiais e pelo SLA. Para mais informações sobre um recurso assíncrono específico, consulte a documentação do product correspondente.