Skip to main content
Esses recursos se baseiam na Persistência de sandbox. A pausa automática mantém o estado da sandbox quando a duração máxima expira. A retomada automática desperta uma sandbox pausada quando uma nova atividade chega.

Configurar

Ao criar uma sandbox, passe uma configuração lifecycle. Isso controla o comportamento de tempo limite e se uma sandbox pausada pode despertar automaticamente.

Opções de ciclo de vida

A configuração lifecycle oferece suporte a estes campos: Se a retomada automática estiver desabilitada ou omitida, uma sandbox pausada ainda poderá ser retomada manualmente com Sandbox.connect().

Pausa automática

Por padrão, uma sandbox é encerrada quando seu tempo limite expira. Para manter o estado em vez disso, defina onTimeout em JavaScript ou on_timeout em Python para pausar no tempo limite.

Retomada automática

A retomada automática pode despertar uma sandbox pausada quando uma atividade compatível chega. Isso funciona somente quando a sandbox está configurada para pausar no tempo limite.

Tempo limite após a retomada automática

Após uma retomada automática, a sandbox recebe um tempo limite de pelo menos cinco minutos. Se o tempo limite original era maior que cinco minutos, o valor original mais longo é reutilizado. O temporizador de tempo limite começa quando a sandbox é retomada, não quando ela foi criada originalmente. Exemplo com um tempo limite de dois minutos:
  1. A sandbox é executada por dois minutos e então pausa.
  2. Uma nova atividade chega à sandbox, fazendo com que ela seja retomada.
  3. A sandbox retomada recebe um tempo limite de cinco minutos porque esse é o mínimo.
  4. Se nada redefinir o temporizador, a sandbox pausará novamente após cinco minutos.
Exemplo com um tempo limite de uma hora:
  • A sandbox é retomada com um tempo limite de uma hora, porque o tempo limite original é maior que o mínimo de cinco minutos.
Esse comportamento continua em ciclos futuros de pausa e retomada, porque as configurações de ciclo de vida permanecem associadas à sandbox.
Você pode atualizar o tempo limite após retomar usando setTimeout() em JavaScript ou set_timeout() em Python.

O que conta como atividade

A retomada automática pode ser acionada por ações do SDK e tráfego HTTP. Exemplos compatíveis incluem:
  • sandbox.commands.run(...)
  • sandbox.files.read(...)
  • sandbox.files.write(...)
  • Visitar a URL de uma aplicação em túnel
  • Enviar solicitações para um serviço em execução dentro da sandbox
Quando uma sandbox está pausada e a retomada automática está habilitada, a próxima ação compatível a retoma automaticamente. Você não precisa chamar Sandbox.connect() primeiro.

Exemplo de SDK: pausar e depois ler um arquivo

Este exemplo cria uma sandbox, grava um arquivo, pausa a sandbox e depois lê o arquivo. A operação de leitura faz com que a sandbox seja retomada.

Exemplo: servidor Web com retomada automática

A retomada automática funciona bem para ambientes de pré-visualização e servidores Web. Depois que a sandbox pausa, uma solicitação HTTP de entrada para o serviço exposto pode despertá-la. O exemplo abaixo inicia um servidor HTTP Python simples e imprime uma URL pública de pré-visualização. Você pode usar getHost() em JavaScript ou get_host() em Python para obter o hostname público de uma porta.

Limpeza

A retomada automática permanece habilitada ao longo de ciclos repetidos de retomada e pausa. Cada retomada inicia um novo período de tempo limite, usando pelo menos cinco minutos ou o tempo limite original mais longo. Depois que a sandbox é retomada, os clientes devem se reconectar a todos os serviços que estavam usando. Conexões HTTP, WebSocket, de banco de dados e de terminal existentes não permanecem abertas enquanto a sandbox está pausada. Você pode chamar .kill() para excluir a sandbox permanentemente. Depois disso, ela não poderá ser retomada.
Última modificação em 10 de agosto de 2026