Problemas e limitações

É possível encontrar os seguintes problemas e limitações ao usar o Cloud Tasks:

Ordem de execução

Com exceção das tarefas programadas para serem executadas no futuro, as filas de tarefas não seguem uma ordem de execução. Não há garantias da execução das tarefas em qualquer ordem específica. Especificamente, não há garantia de que tarefas antigas serão executadas se a fila não estiver completamente vazia. Em alguns casos as tarefas mais recentes são executadas antes das antigas, e os padrões relacionados mudam sem aviso prévio.

Execução duplicada

O Cloud Tasks visa uma semântica estrita de "executar exatamente uma vez". No entanto, em situações em que há um conflito entre a garantia de execução e a execução duplicada, o serviço favorece a primeira. Assim, o número de execuções duplicadas não é zero. Os desenvolvedores devem tomar medidas para garantir que a execução duplicada não seja um evento catastrófico. Na produção, mais de 99,999% das tarefas são executadas apenas uma vez.

Limitações de recursos

A causa mais comum de atrasos em filas de processamento imediato é o esgotamento de recursos nas instâncias de destino. Se um usuário estiver tentando executar 100 tarefas por segundo em instâncias de front-end que só podem processar 10 solicitações por segundo, um backlog será gerado. Isso geralmente se manifesta em dois problemas, que normalmente podem ser resolvidos com o aumento do número de instâncias processando solicitações.

Erros de retirada e taxas impostas

Os servidores sobrecarregados podem começar a retornar erros de retirada na forma do código de resposta HTTP 503. O Cloud Tasks reage desacelerando a execução até que os erros parem.

Picos de latência e número máximo de tarefas concorrentes

Servidores sobrecarregados também podem responder com grandes aumentos de latência. Nessa situação, as solicitações permanecem abertas por mais tempo. As tarefas podem não ser executadas na taxa esperada porque as filas têm um número máximo de tarefas simultâneas. Aumentar max_concurrent_tasks para as filas afetadas pode ajudar nas situações em que o valor foi definido como muito baixo, introduzindo um limite de taxa artificial. No entanto, aumentar o max_concurrent_tasks provavelmente não diminuirá a pressão de recurso subjacente.

Aumento de problemas com tarefas de longa duração

As filas do Cloud Tasks aumentam a saída em parte com base no número de tarefas enviadas anteriormente. Se o gerenciador de tarefas demorar um período considerável (em minutos) para concluir uma tarefa e retornar uma resposta de sucesso, poderá haver um atraso na taxa de ampliação da fila.

Visualização de mais de 5.000 tarefas

Se você tiver mais de 5.000 tarefas, algumas não ficarão visíveis no console do Google Cloud. Use a CLI gcloud para ver todas as tarefas.