Máquinas virtuais e navegadores em nuvem são cobrados por tempo, então tarefas em lote podem estourar a cota com facilidade. Estime o consumo, defina um limite prático de concorrência e siga uma ordem clara de recuperação.
Em recursos cobrados por tempo, a lógica da cobrança é simples: tempo de execução multiplicado pelo número de instâncias. A cota é um limite rígido. Ao atingi-la, as tarefas não ficam apenas mais lentas — elas falham diretamente: novas instâncias não podem ser criadas, instâncias em execução podem ser retomadas e as APIs começam a retornar erros de limitação. Saber quanta margem resta até o limite é mais útil do que simplesmente aumentar o orçamento depois.
Primeiro, separe o consumo necessário do dispensável
A mesma cota pode gerar resultados muito diferentes dependendo das tarefas que a consomem. Comece fazendo um inventário e separe as tarefas conforme realmente precisem ou não de execução em tempo real.
Tarefas permanentes estão entre as que mais facilmente consomem a cota. Elas podem ficar ativas o dia inteiro mesmo trabalhando de fato por apenas alguns minutos. Trocar monitoramento contínuo por acionamentos programados costuma reduzir uma grande parte do consumo com impacto quase imperceptível no negócio. Tarefas de pico concentradas em determinados horários podem ser deslocadas, e tarefas pontuais podem ser iniciadas somente quando necessário.
Depois faça uma pergunta: o negócio seria afetado se esta tarefa fosse executada seis horas mais tarde? Se sim, mantenha-a no caminho crítico e execute-a em tempo real. Se não, transforme-a em um lote de baixa prioridade e coloque-a em um período com mais cota disponível. Mudar o monitoramento de preços de concorrentes de uma vez por hora para duas vezes por dia normalmente não reduz de forma significativa o valor da informação.
Como estimar o consumo e definir a concorrência
Quando a cobrança é baseada no tempo de execução da instância, o consumo total de um lote é aproximadamente a duração média de uma tarefa multiplicada pelo número de tarefas. Isso não depende do nível de concorrência; a concorrência apenas determina quanto tempo o lote leva para terminar. O que realmente depende dela é a pressão instantânea: quanto mais instâncias sobem ao mesmo tempo, maior a chance de atingir o limite de concorrência do pool de recursos ou a limitação da própria plataforma.
Por isso, comece com a menor concorrência. Execute primeiro uma tarefa e confirme sua duração média e taxa de sucesso. Depois aumente gradualmente para algumas tarefas e então para cerca de uma dúzia, registrando a taxa de falhas e o número de novas tentativas. Quando a taxa de falhas subir claramente a partir de certo ponto, ali está o limite prático. Aumentar mais só devolve, por meio de novas tentativas, o tempo que parecia ter sido economizado.
Ao estimar, não esqueça os tempos ocultos: espera de login, carregamento de páginas, etapas de verificação e novas tentativas após falhas. Muitas vezes eles duram mais que o fluxo principal. Reservar uma margem para cada tarefa é mais útil do que tentar calcular tudo ao minuto.
Como é o esgotamento de cota
O esgotamento de cota pode ser difícil de reconhecer porque frequentemente se parece com outros problemas.
Um sintoma é a tarefa travar na fase de inicialização porque a criação do ambiente ou da instância foi rejeitada, deixando apenas uma mensagem vaga de falha no log. Outro é a instância ser retomada no meio da execução e todo o progresso anterior ser perdido. Também podem surgir erros de limitação, uma mistura de sucessos e falhas ou uma fila que cresce continuamente sem ser processada.
O caso mais fácil de interpretar errado é um falso travamento: a instância ainda existe e a tarefa parece estar rodando, mas na verdade está presa em espera enquanto a cota continua sendo consumida ao longo do tempo. Nessa situação, verifique primeiro o painel de uso da cota e depois teste uma tarefa pequena isoladamente. Se ela também não iniciar, investigue cota ou permissões. Se funcionar normalmente, o problema provavelmente é concorrência ou reutilização de ambiente.
Ordem das medidas de recuperação
Comece por ações que não custam dinheiro.
Primeiro, interrompa o consumo permanente de baixo valor e converta tarefas de monitoramento em execuções programadas. Segundo, mova as tarefas que toleram atraso para períodos com mais cota disponível, achatando a curva de consumo. Terceiro, reduza o limite de concorrência e adicione uma fila, para que as tarefas sejam processadas conforme a capacidade disponível em vez de iniciarem todas ao mesmo tempo. Quarto, reduza o desperdício: use cache para não buscar o mesmo recurso repetidamente, obtenha mais dados por solicitação quando fizer sentido, encerre rapidamente solicitações destinadas a falhar e não as repita indefinidamente.

Depois dessas quatro etapas, avalie se ainda é necessário aumentar o orçamento ou mudar para um nível superior. Muitas vezes a cota realmente necessária é menor do que parecia no início. Aumentar o orçamento primeiro, por outro lado, também significa pagar pelos hábitos ineficientes.
Não comprima a camada de ambiente junto com a de computação
Um erro comum ao economizar cota é fazer várias tarefas compartilharem o mesmo ambiente de navegador com a justificativa de que iniciar um único ambiente uma vez deveria ser suficiente.
O custo aparece imediatamente: sessões se sobrescrevem, estados de login são substituídos, caches se misturam e a falha de uma tarefa pode derrubar as outras. A pequena economia de tempo de instância acaba sendo devolvida várias vezes em diagnóstico e reexecuções.
Essas duas camadas devem ser tratadas separadamente. A camada de computação executa a lógica das tarefas, agenda o trabalho sob demanda e busca eficiência de custos. A camada de ambiente cuida de identidade e isolamento, com um ambiente independente para cada tarefa, priorizando estabilidade. Comprimir a camada de ambiente porque a capacidade de computação está apertada mistura dois tipos de custo. A criação e a reciclagem em massa de ambientes devem ser gerenciadas de forma centralizada por ferramentas dessa camada. Com o PurpleMark isolando sessões e caches por ambiente, as tarefas e os executores da camada superior podem ser agendados com mais liberdade.
Um último lembrete: não reduza custos violando regras. Não use serviços de canais não oficiais apenas para economizar cota e não tente forçar mais volume aumentando a frequência das solicitações. Depois que a limitação é acionada, as novas tentativas costumam consumir mais cota do que executar em um ritmo controlado.


