Este documento apresenta uma visão geral da linha do tempo de tarefas assíncronas, usando uma tarefa de transcodificação para ilustrar como interpretar o status da tarefa e estimar o tempo de processamento. Os campos de status, indicadores de progresso e métodos de consulta podem variar conforme o tipo de tarefa. Consulte sempre a documentação específica do produto e as respostas reais da API.
Visão geral
O Alibaba Cloud ApsaraVideo VOD, o Alibaba Cloud Intelligent Media Services e o Alibaba Cloud Media Processing oferecem diversos recursos de processamento de mídia assíncrono. Ao enviar uma tarefa assíncrona, o serviço a processa em segundo plano e retorna o resultado após a conclusão.
Um envio bem-sucedido confirma apenas que o serviço aceitou a tarefa. Isso não significa que a execução começará imediatamente, nem garante a conclusão dentro de um prazo fixo.
Uma tarefa assíncrona é uma forma de processamento offline. Diferentemente de uma API síncrona, o tempo de conclusão de uma tarefa assíncrona depende de múltiplos fatores, incluindo agendamento de tarefas, flutuações no volume de tarefas, complexidade da tarefa, características do arquivo source e configurações de parâmetros. O tempo total de conclusão pode ser significativamente maior do que o tempo de processamento após a tarefa entrar na etapa de execução efetiva.
Tarefas assíncronas não são adequadas como dependências bloqueantes em fluxos de trabalho empresariais sensíveis ao tempo. Não utilize os valores de referência de velocidade de processamento deste documento para estimar prazos de entrega em ambiente de produção.
Escopo
Este documento aplica-se a tarefas de processamento de mídia iniciadas e executadas de forma assíncrona no Alibaba Cloud ApsaraVideo VOD, Alibaba Cloud Intelligent Media Services e Alibaba Cloud 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 mídia.
Tarefas de processamento de mídia assistidas por IA.
Outras tarefas de processamento de mídia enviadas e recuperadas por meio de mecanismo assíncrono.
Caso exista documentação separada para um recurso específico, siga aquelas instruções.
Linha do tempo geral
Leia esta seção inteira antes de iniciar tarefas e projetar seu fluxo de trabalho empresarial.
O tempo total de uma tarefa assíncrona geralmente consiste em duas partes:
total task time = waiting time + processing time
Onde:
waiting time: Tempo que a tarefa permanece na fila após o envio, mas antes de entrar na etapa de processamento efetivo.
processing time: Tempo consumido para executar a tarefa em si após ela entrar na etapa de processamento efetivo.
Receber um ID de tarefa confirma apenas que a tarefa foi criada com sucesso.
O tempo de conclusão percebido corresponde ao tempo total da tarefa, não apenas ao tempo de processamento.
Os valores de referência de desempenho servem apenas para fins ilustrativos. Eles não constituem um compromisso de serviço, métrica de Acordo de Nível de Serviço (SLA), garantia de entrega ou base para compensação.
Mesmo que as especificações de uma tarefa sejam semelhantes a um exemplo de referência, o tempo total de conclusão pode ser significativamente maior devido ao aumento do tempo de espera.
Se o seu negócio tiver prazos rigorosos, inclua tempo de margem e projete seu sistema com desacoplamento assíncrono, fallbacks de timeout e planos de degradação de serviço.
Diferença entre "tempo total de conclusão" e "tempo de processamento"
Compreender essa distinção é fundamental para gerenciar expectativas em tarefas assíncronas.
Referências a velocidade de processamento, multiplicadores de velocidade ou tempos de exemplo neste documento descrevem apenas as características de desempenho de uma tarefa após ela entrar na etapa de processamento efetivo.
O tempo necessário para receber um resultado depende de:
Quanto tempo a tarefa aguarda na fila antes do início do processamento.
Quanto tempo a tarefa leva para ser processada após o início.
Portanto:
Tempo de processamento de referência ≠ Tempo total de conclusão.
Não é possível usar tempos de processamento de referência para prever o prazo de entrega de uma tarefa.
Tarefas com especificações idênticas, enviadas em momentos diferentes, podem ter tempos totais de conclusão significativamente distintos.
Tempo de espera geral
Após o envio de uma tarefa, o serviço a agenda para processamento com base no tipo de tarefa, no volume geral de tarefas e nas estratégias internas de processamento.
O tempo de espera pode aumentar nas seguintes situações:
Envio de um grande número de tarefas em um curto período.
Flutuação significativa no volume de tarefas durante o mesmo período.
Alta proporção de tarefas computacionalmente complexas na fila.
O envio bem-sucedido de uma tarefa não significa que o processamento já começou.
O tempo de espera pode variar dependendo do horário de envio, tipo de tarefa, volume de tarefas e diferenças nos pipelines de processamento.
Não reenvie a mesma tarefa enquanto ela estiver aguardando. Isso pode causar processamento duplicado e aumentar o tempo de espera geral.
Utilize callback assíncrono para receber resultados de tarefas em vez de polling de alta frequência.
Para entender o status atual do serviço, considere os seguintes pontos:
O tempo de espera é afetado por muitos fatores, como volume e características das tarefas. Um aumento isolado no tempo de espera não é um indicador confiável de problema no serviço. Para confirmar o status atual, entre em contato com o suporte técnico.
Caso ocorra um problema de serviço com impacto generalizado, a Alibaba Cloud notificará os usuários afetados via mensagens internas, SMS ou outros canais.
Tempo de processamento geral
O tempo real de processamento depende do tipo de tarefa, das características do arquivo source e da configuração da tarefa. Diferentes recursos possuem modelos distintos para estimar a duração da tarefa.
Fatores comuns de influência
|
Fator |
Padrão |
Descrição |
|
Duração do arquivo source |
Maior duração geralmente implica maior tempo 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 de processamento |
Por exemplo, resoluções maiores ou formatos de saída mais complexos. |
|
Complexidade do algoritmo de processamento |
Algoritmos mais complexos geralmente implicam maior tempo de processamento |
Por exemplo, transcodificação avançada ou análise complexa. |
|
Parâmetros personalizados |
Parâmetros mais complexos geralmente implicam maior tempo de processamento |
Por exemplo, parâmetros de aprimoramento ou processamento em múltiplas etapas. |
|
Características do arquivo source |
Características mais complexas podem levar a maior variação de tempo |
Por exemplo, bitrate, taxa de quadros, formato de contêiner ou estrutura de stream. |
|
Tipo de tarefa |
Diferentes tipos de tarefa possuem modelos de tempo distintos |
Não é possível comparar diretamente os tempos de tarefas de transcodificação, edição, snapshot e análise. |
Diferenças entre tipos de tarefa
Tarefas de transcodificação: O tempo 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 também é afetado pelo número de clipes, necessidade de recodificação, se as edições cruzam keyframes e pela junção de múltiplos clipes.
Tarefas de snapshot, image sprite e análise: Os métodos de estimativa de tempo podem diferir dos usados em transcodificação. Consulte a documentação específica do produto para verificar a disponibilidade de campos de progresso, campos de status e etapas de processamento.
Status e progresso da tarefa
Campos de status, indicadores de progresso, métodos de consulta e mecanismos de notificação de resultados podem variar entre os tipos de tarefa assíncrona.
A lógica de estados descrita neste documento ilustra as etapas comuns de processamento de uma tarefa assíncrona. Nem todas as tarefas assíncronas utilizam esse modelo de estados.
Geralmente, uma tarefa assíncrona passa pelas seguintes etapas:

Nota:
Algumas tarefas podem ter um campo de progresso consultável.
Algumas tarefas podem retornar apenas alguns status, como Processing, Succeeded ou Failed.
Em algumas tarefas, "Waiting" não é um status distinto, mas uma fase determinada pela combinação do campo de status com outros campos.
Para definições específicas de status, consulte as respostas reais da API e a documentação relevante do produto.
Exemplo: Tarefas de transcodificação
Esta seção ilustra como interpretar o status e estimar a duração de tarefas de transcodificação. Outras tarefas assíncronas podem utilizar mecanismos diferentes.
Status da tarefa de transcodificação
Por exemplo, após enviar uma tarefa de transcodificação, o campo de status no resultado da consulta pode exibir "Transcoding".
Note que o status "Transcoding" indica que a tarefa entrou no fluxo de transcodificação, mas não necessariamente que a transcodificação efetiva começou.
Use o campo TranscodeProgress para determinar com mais precisão a etapa da tarefa:
|
Status da tarefa |
TranscodeProgress |
Descrição |
Interpretação recomendada |
|
Transcoding/Submitted |
0 |
Transcodificação ainda não iniciada. |
Waiting |
|
Transcoding/Percent/Running |
> 0 |
Transcodificação em andamento. |
Transcoding |
|
Status Succeeded |
100 ou conclusão da tarefa |
Transcodificação finalizada com sucesso. |
Succeeded |
|
Status Failed |
- |
Transcodificação encerrada devido a erro. |
Failed |
Para tarefas de transcodificação, waiting normalmente não é um status independente. Trata-se de uma fase determinada pela combinação do status da tarefa com o progresso da transcodificação.
Referência de velocidade de transcodificação
Esses valores de referência descrevem a velocidade de processamento de uma tarefa de transcodificação após o início, sob condições típicas de teste. Eles não incluem o tempo de espera, não representam o tempo total de conclusão da tarefa e não constituem um compromisso de serviço.
Para um cenário típico de transcodificação H.264 720p, as características de velocidade de processamento dos diferentes algoritmos são:
|
Algoritmo de transcodificação |
Referência de velocidade |
Descrição |
|
Standard Transcoding |
Cerca de 3x |
Reflete apenas a velocidade da etapa de processamento em condições típicas. |
|
Narrowband HD 1.0 |
Cerca de 1,5x |
O tempo de processamento costuma ser maior que o da transcodificação padrão. |
|
Narrowband HD 2.0 |
Geralmente muito inferior a 1x |
O tempo de processamento costuma ser maior que a duração do vídeo source. O tempo real depende da tarefa. |
Multiplicador de velocidade
Speed = Multiplier of video duration that can be processed per unit of time
Example:
3x speed means that for every 1 minute of processing, about 3 minutes of video content can be processed.
Therefore, for a 30-minute video, the theoretical processing time is about 10 minutes, excluding waiting time.
Os valores de referência acima aplicam-se apenas a cenários típicos de transcodificação H.264 720p.
Não use esses valores para estimar o tempo total de conclusão da tarefa.
Para resoluções mais altas, codificações mais complexas ou configurações de parâmetros mais intensivas, a velocidade de processamento costuma ser inferior aos valores de referência.
Diferenças no bitrate, taxa de quadros, formato de contêiner e estrutura de stream do vídeo source podem afetar significativamente o tempo de processamento.
A complexidade de processamento do Narrowband HD 2.0 é tipicamente muito superior à da transcodificação padrão e do Narrowband HD 1.0.
Para o tempo real de processamento, consulte a consulta de status da tarefa ou os resultados da notificação de conclusão.
Perguntas frequentes
1. Uma tarefa de transcodificação de 10 minutos em 720p sempre terminará em 3 a 4 minutos?
Não necessariamente.
O valor de referência "cerca de 3x" descreve a velocidade de processamento da tarefa após o início, sob condições típicas. Ele não inclui o tempo de espera antes do início do processamento, nem representa o tempo total de conclusão de uma tarefa em ambiente de produção.
O tempo real até a disponibilidade do resultado corresponde ao tempo total de conclusão da tarefa. Não use a referência de velocidade de processamento para prever prazos de entrega.
Se o tempo total da tarefa exceder suas expectativas de negócio, consulte a seção Solução de problemas gerais para obter orientações ou entre em contato com o suporte técnico.
2. Por que o status da minha tarefa de transcodificação mostra "Transcoding", mas o TranscodeProgress está sempre em 0?
Para uma tarefa de transcodificação, o status "Transcoding" significa que a tarefa entrou no fluxo de trabalho de transcodificação, mas não indica que a transcodificação efetiva começou.
Quando TranscodeProgress = 0, a tarefa ainda está na etapa de espera. Quando TranscodeProgress > 0, a tarefa entrou na etapa de processamento efetivo da transcodificação.
3. As especificações da minha tarefa são semelhantes ao cenário de referência, mas por que o tempo real de conclusão é muito maior?
Possíveis razões incluem, mas não se limitam a:
A tarefa passou por um longo tempo de espera antes do início do processamento.
As características reais do seu 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 durante o mesmo período causaram aumento no tempo total de conclusão.
Para identificar melhor a causa, recomendamos entrar em contato com o suporte técnico e fornecer o ID da tarefa para assistência.
4. Um aumento no tempo de espera sempre indica um problema no serviço?
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 é um indicador confiável de problema no serviço. Para confirmar o status atual do serviço, recomendamos entrar em contato com o suporte técnico para assistência.
5. Posso usar a referência de velocidade de processamento para garantir meus prazos de entrega de negócio?
Não.
A referência de velocidade de processamento serve apenas para ajudar a compreender as características de processamento da tarefa. Ela não deve ser usada como base para prazos de entrega em produção, SLAs de negócio ou compromissos com usuários finais.
Para cenários de negócio com requisitos rígidos de tempo, inclua tempo de margem em sua arquitetura e implemente fallbacks de timeout e mecanismos de degradação de serviço.
6. Posso interpretar o status de outras tarefas assíncronas da mesma forma que tarefas de transcodificação?
Não necessariamente.
O uso de "Transcoding" e "TranscodeProgress" no exemplo é específico para tarefas de transcodificação.
Para tarefas de edição, snapshot, image sprite, análise de mídia e outras tarefas assíncronas, os campos de status, campos de progresso e métodos de interpretação podem ser diferentes. Consulte a API de consulta e a documentação de cada tarefa específica.
Operações principais
Enviar uma tarefa
Ao enviar uma tarefa assíncrona via API, o serviço retorna um ID de tarefa.
O ID da tarefa é o identificador exclusivo para consultar status, correlacionar notificações e solucionar problemas. Armazene-o com segurança.
Obter resultados
Após o processamento da tarefa, o serviço pode enviar uma notificação de resultado se uma URL de callback estiver configurada. Use esse callback para detectar automaticamente a conclusão da tarefa sem necessidade de polling contínuo.
Uso de callbacks
Recomendamos o uso do método de callback para obter resultados em ambiente de produção.
Se a URL de callback estiver inacessível, o serviço tentará novamente automaticamente conforme política predefinida.
Se a entrega falhar após múltiplas tentativas, use a API de consulta para verificar ativamente 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 problemas no lado do cliente.
Sua lógica de callback no lado do cliente deve realizar verificação de idempotência com base no ID da tarefa.
O status final da tarefa deve basear-se no resultado retornado pela API de consulta.
Para detalhes sobre configuração de callback e mecanismos de nova tentativa, consulte Configuração de Callback.
Consultar uma tarefa
Consulte ativamente o status atual e o resultado de uma tarefa usando seu ID. Isso é útil nos seguintes cenários:
Você não configurou notificação por callback.
Você tem um callback configurado, mas precisa verificar o progresso atual.
A duração da tarefa excede suas expectativas de negócio.
Como método de fallback quando as notificações de callback falham.
Consulta de informações da tarefa
A API de consulta retorna principalmente status, progresso e informações de resultado da tarefa. Se uma tarefa demorar significativamente mais do que o esperado, recomendamos solucionar o problema verificando as mudanças de status, o horário de envio e a configuração da tarefa. Se ainda não conseguir determinar a causa, entre em contato com o suporte técnico e forneça o ID da tarefa para análise.
Solução de problemas gerais
Se uma tarefa demorar mais do que o esperado, siga estas etapas:
1. Confirmar a conclusão da tarefa
Consulte o status atual ou o resultado da tarefa usando seu ID:
Se a tarefa estiver concluída, obtenha o resultado e avalie o tempo total gasto.
Se a tarefa falhou, verifique o código de erro e a mensagem de erro.
Se a tarefa ainda não estiver concluída, prossiga para a próxima etapa para determinar se ela está na fase de espera ou de processamento.
2. Determinar a etapa pelo tipo de tarefa
Para tarefas de transcodificação: Verifique o status "Transcoding" e o campo "TranscodeProgress" para determinar se a tarefa entrou na etapa de processamento efetivo.
Para outras tarefas assíncronas: Consulte os campos retornados pela API de consulta e a documentação daquela tarefa específica. Não aplique o mesmo método de interpretação usado para tarefas de transcodificação.
3. Identificar causas pelas características da tarefa
|
Sintoma |
Causa possível |
Ação recomendada |
|
Sem resultado por muito tempo |
Flutuação no volume de tarefas, aumento no tempo de espera, problema no serviço ou alta complexidade da tarefa |
Verifique a página de status do serviço. Entre em contato com o suporte técnico se necessário. |
|
Tempo de processamento muito maior que o habitual |
Arquivo source complexo, parâmetros intensivos ou alta complexidade da tarefa |
Verifique o arquivo source e a configuração. Entre em contato com o suporte se necessário. |
|
Falha na tarefa |
Problema no arquivo source, erro de parâmetro ou erro de processamento |
Consulte a documentação de códigos de erro e corrija conforme sugerido. |
|
Nenhum resultado na consulta |
ID de tarefa incorreto ou tarefa não enviada com sucesso |
Verifique o resultado do envio e o ID da tarefa. |
4. Informações para o suporte técnico
Ao entrar em contato com o suporte técnico para solução de problemas, forneça as seguintes informações:
ID da tarefa.
Horário de envio da tarefa.
Tipo de tarefa (por exemplo, transcodificação, edição, snapshot ou análise).
Duração, resolução e formato de codificação do arquivo source.
Configuração do modelo ou parâmetros de processamento.
Indique se os itens foram enviados em lote.
Descrição do problema e seu impacto.
Métodos de integração recomendados
|
Método |
Descrição |
Caso de uso |
|
Callback assíncrono (Recomendado) |
O serviço envia o resultado após a conclusão da tarefa. |
Ambientes de produção e cenários de negócio regulares. |
|
Polling |
Consulta periódica do status e resultado da tarefa. |
Depuração, testes e como fallback para falhas de callback. |
Recomendações de integração
Em ambiente de produção, priorize o uso de callbacks assíncronos.
Evite polling de alta frequência para reduzir requisições desnecessárias.
Implemente controles de idempotência ao enviar tarefas para evitar duplicatas.
Para tarefas em lote, escalone os envios para evitar criar filas grandes em pouco tempo.
Estabeleça um mecanismo para monitoramento de timeout de tarefas, alertas e fallback manual.
Para cenários de negócio críticos, reserve tempo de margem suficiente e projete um plano de degradação de serviço.
Não use referências de velocidade de processamento para compromissos de entrega em produção.
SLA e escopo de responsabilidade
Se você suspeitar que um atraso na tarefa foi causado por problema no serviço, entre em contato com o suporte técnico e forneça o ID da tarefa e informações relacionadas para assistência.
A disponibilidade do serviço, responsabilidade e compensação são regidas pelo acordo de serviço oficial e pelo Acordo de Nível de Serviço (SLA).
As descrições de duração de tarefas, valores de referência de velocidade de processamento, exemplos e perguntas frequentes neste documento servem apenas como referência. Eles ajudam a explicar o mecanismo de processamento de tarefas assíncronas e não constituem um compromisso independente quanto aos tempos de conclusão, nem base para compensação de serviço ou de negócio.
Recomendações
Para reduzir o impacto nos negócios causado por flutuações no tempo de tarefas assíncronas:
Utilize desacoplamento assíncrono no projeto do seu sistema para lidar com tarefas de mídia.
Use callbacks ou consultas de status para obter resultados de tarefas em vez de bloqueio síncrono.
Reserve tempo de margem extra para períodos de pico, tarefas em lote e tarefas complexas.
Estabeleça mecanismos para alertas de timeout de tarefas, intervenção manual e fallbacks de negócio.
Para mais informações, consulte a documentação relevante do produto.