jsonscraper
Mercados
Voltar ao jornal

Cloudflare adia atualizações do Durable Objects para permitir que tarefas ativas terminem

Após uma implantação, um objeto ativo pode funcionar por até cinco minutos na versão antiga; conexões WebSocket podem sobreviver à transição se usarem a Hibernation API.

Política editorial Comunique um erro

Após uma implantação, um Cloudflare Durable Object ativo pode continuar funcionando com a versão atual do código até entrar em hibernação ou até o fim do prazo definido. Em 30 de outubro, a Cloudflare definiu as atualizações adiadas como padrão, com atraso máximo de cinco minutos. Para os desenvolvedores, isso muda o comportamento de objetos em execução durante uma implantação: a atualização não precisa interrompê-los imediatamente, e conexões WebSocket compatíveis podem ser preservadas na transição para a nova versão.

Artigo: Cloudflare adia atualizações do Durable Objects para permitir que tarefas ativas terminem
Resumo: Desde 30 de outubro, a Cloudflare aplica por padrão atualizações adiadas de código aos Durable Objects. Isso dá aos objetos ativos tempo para entrar em hibernação, mas não garante que toda operação seja concluída nem preserva todas as conexões WebSocket.
Função da imagem: capa — a ideia central
Seção: 
Tema visual: Visualização editorial conceitual de um objeto de computação em nuvem persistente
A ilustração mostra a ideia central da atualização: um objeto ativo pode continuar funcionando com o código antigo até entrar em hibernação ou o prazo definido terminar.© jsonscraper · criado com IA

O que acontece durante a implantação

Durable Objects são objetos endereçáveis, com identidade e estado persistentes, que a Cloudflare usa, entre outras coisas, para coordenar clientes, tarefas de longa duração e sessões WebSocket. Cada objeto executa uma única versão do código por vez. Portanto, uma substituição imediata pode reiniciar uma instância ativa e interromper o trabalho ou as conexões.

Agora, o comportamento padrão é uma transição adiada. Após a implantação, um objeto ativo continua atendendo solicitações com a versão antiga. Se entrar em hibernação antes, a nova versão será iniciada na próxima solicitação. Se os cinco minutos terminarem enquanto o objeto ainda estiver ativo, ele será reiniciado e passará a usar a nova versão. A implantação do Worker é concluída separadamente: o atraso diz respeito ao momento em que um objeto já ativo começa a executar o novo código.

Quem se beneficia

A mudança é importante para serviços nos quais um objeto mantém o trabalho entre solicitações, como sessões longas, coordenação entre vários clientes ou conexões WebSocket. A transição adiada cria uma janela para que esse objeto conclua naturalmente a atividade em andamento ou entre em repouso antes de se atualizar. Para WebSocket, a Cloudflare especifica uma condição: as conexões que usam a Hibernation API permanecem conectadas quando o objeto recebe o novo código após a hibernação.

A conclusão prática para as equipes é identificar quais objetos ativos podem permanecer ocupados por mais de alguns minutos e verificar qual API de WebSocket está sendo usada. Isso determina se o novo processo de implantação dará ao aplicativo a chance de fazer uma transição gradual ou se a conexão terminará durante uma atualização forçada.

Cinco minutos são uma janela, não uma garantia

A Cloudflare descreve a atualização adiada como um mecanismo de melhor esforço: o objeto pode ser reiniciado antes, por exemplo, durante uma atualização do ambiente de execução. Se não entrar em hibernação até o fim do atraso máximo, a plataforma aplicará a nova versão por meio de uma reinicialização. Por isso, é importante salvar o estado essencial em armazenamento persistente e projetar as operações considerando a possibilidade de serem executadas novamente. A documentação da Cloudflare recomenda salvar o estado que deve sobreviver às implantações, em vez de depender da memória da instância ativa.

As equipes podem substituir esse comportamento na configuração dos Durable Objects: definir o modo de atualização imediata ou escolher outro prazo para a transição adiada. O modo imediato é útil quando a nova versão precisa entrar em vigor sem demora, por exemplo, para uma correção urgente; um prazo mais longo pode dar mais tempo aos objetos, mas também prolonga o período em que algumas instâncias ainda usam a versão antiga.

O que verificar antes da próxima implantação

Confira a compatibilidade das solicitações entre o Worker e o Durable Object durante o período em que podem estar executando versões diferentes. Verifique se o estado essencial está salvo no armazenamento, e não apenas na memória. Para WebSocket, confirme se o aplicativo usa a Hibernation API: conexões comuns podem ser encerradas quando a atualização é aplicada. Se a implantação exigir uma transição imediata, confira a configuração explícita do modo, em vez de confiar no novo padrão.

Assim, a Cloudflare alterou o equilíbrio padrão durante a implantação: objetos ativos recebem um período limitado para fazer uma transição natural, enquanto as equipes continuam podendo acelerar a atualização por meio de uma configuração. O mais útil para os desenvolvedores é verificar a compatibilidade entre as versões antiga e nova, a persistência do estado e o tipo de WebSocket antes da próxima implantação.

Pessoas

Nenhuma pessoa listada para este artigo ainda.

Continue lendoAgentes da OpenAI transmitiram segredos pelo cache do processador — sem rede nem arquivos compartilhados
Leia o próximo artigo

Transforme o que lê numa integração funcional

Explore as APIs de dados sociais da jsonscraper, teste pedidos e crie o seu próximo fluxo de trabalho.

Explorar APIs