> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Sandboxpersistentie

export const SandboxConfigHint = () => {
  if (typeof document === "undefined") {
    return null;
  } else {
    return <Note>Before running the example code in this document, please ensure you have properly configured environment variables. For details, please refer to <a href="/docs/nl/guides/sandbox-your-first-agent-sandbox#configure-environment-variables">Configure Environment Variables</a>.</Note>;
  }
};

Met sandboxpersistentie kun je een sandbox pauzeren en later hervatten met hetzelfde bestandssysteem en dezelfde geheugenstatus. Dit is handig voor langlopende agenttaken, interactieve apps en workflows die inactieve perioden moeten overleven zonder compute-resources actief te houden.

Wanneer een sandbox is gepauzeerd:

* Bestanden die in de sandbox zijn gemaakt, blijven behouden.
* De status in het geheugen blijft behouden, inclusief actieve processen en variabelen.
* Netwerkverbindingen worden onderbroken totdat de sandbox wordt hervat.
* De sandbox blijft opgeslagen totdat je deze hervat en beëindigt, of beëindigt terwijl deze is gepauzeerd.

Voor automatisch pauzeren bij timeout en automatisch hervatten bij activiteit, zie [Automatisch pauzeren en hervatten](/docs/nl/guides/sandbox-auto-resume). Voor idle timeout, zie [Idle timeout](/docs/nl/guides/sandbox-idle-timeout).

<SandboxConfigHint />

<Warning>
  Let op:

  * Het duurt ongeveer 4 seconden per 1 GB RAM om de sandbox te pauzeren.
  * Het duurt ongeveer 1 seconde om de sandbox te hervatten.
  * De gegevens van een gepauzeerde sandbox blijven behouden totdat je expliciet de methode `kill` aanroept.
</Warning>

## Een sandbox pauzeren

Je kunt de methode `pause` aanroepen wanneer je de huidige status wilt opslaan.

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox/code-interpreter'

  const sandbox = await Sandbox.create()
  await sandbox.commands.run('echo hello > /tmp/message.txt')

  const sandboxId = sandbox.sandboxId
  await sandbox.pause()

  console.log('Sandbox paused', sandboxId)
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.code_interpreter import Sandbox

  sandbox = Sandbox.create()
  sandbox.commands.run("echo hello > /tmp/message.txt")

  sandbox_id = sandbox.sandbox_id
  sandbox.pause()

  print('Sandbox paused', sandbox_id)
  ```
</CodeGroup>

## Een sandbox hervatten

Gebruik de opgeslagen sandbox-ID om opnieuw verbinding te maken. Als de sandbox is gepauzeerd, kun je de methode `connect` gebruiken om deze te hervatten voordat deze wordt geretourneerd.

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox/code-interpreter'

  const sandbox = await Sandbox.connect(sandboxId)
  const result = await sandbox.commands.run('cat /tmp/message.txt')
  console.log(result.stdout)

  await sandbox.kill()
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.code_interpreter import Sandbox

  sandbox = Sandbox.connect(sandbox_id)
  result = sandbox.commands.run("cat /tmp/message.txt")
  print(result.stdout)

  sandbox.kill()
  ```
</CodeGroup>

Je kunt een nieuwe `timeout` meegeven wanneer je opnieuw verbinding maakt.

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox/code-interpreter'

  const sandbox = await Sandbox.connect(sandboxId, { timeoutMs: 600_000 })

  await sandbox.kill()
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.code_interpreter import Sandbox

  sandbox = Sandbox.connect(sandbox_id, timeout=600)

  sandbox.kill()
  ```
</CodeGroup>

Voor een draaiende sandbox wordt de timeout alleen bijgewerkt wanneer de nieuwe timeout langer is dan de bestaande. Voor een gepauzeerde sandbox wordt de timeout toegepast nadat deze is hervat.

## Gepauzeerde sandboxes weergeven

Je kunt de methode `list` gebruiken met een statusfilter om gepauzeerde sandboxes te vinden. Meer informatie over het gebruik van de methode vind je in [Sandboxes weergeven](/docs/nl/guides/sandbox-list).

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox/code-interpreter'

  const paginator = Sandbox.list({
    query: {
      state: ['paused'],
    },
  })

  while (paginator.hasNext) {
    const items = await paginator.nextItems()
    for (const info of items) {
      console.log(info.sandboxId, info.state, info.metadata)
    }
  }
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.code_interpreter import Sandbox
  from novita_sandbox.core import SandboxQuery, SandboxState

  paginator = Sandbox.list(
      query=SandboxQuery(state=[SandboxState.PAUSED])
  )

  while paginator.has_next:
      for info in paginator.next_items():
          print(info.sandbox_id, info.state, info.metadata)
  ```
</CodeGroup>

Metadatafilters zijn handig wanneer je sandboxes moet vinden die zijn gemaakt door een specifieke gebruiker, sessie of taak.

## Een gepauzeerde sandbox verwijderen

Gepauzeerde sandboxes blijven opgeslagen totdat je ze verwijdert. Je kunt de methode `kill` gebruiken om gepauzeerde sandboxes te verwijderen die je niet langer nodig hebt.

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={"system"}
  import { Sandbox } from 'novita-sandbox/code-interpreter'

  await Sandbox.kill(sandboxId)
  ```

  ```python Python icon="python" theme={"system"}
  from novita_sandbox.code_interpreter import Sandbox

  Sandbox.kill(sandbox_id)
  ```
</CodeGroup>

## Persistentie versus snapshots

Persistentie is bedoeld om later door te gaan met dezelfde sandbox. Gebruik dit wanneer de exacte sandbox-ID en de huidige actieve status belangrijk voor je zijn.

Snapshots zijn bedoeld om herbruikbare opgeslagen statussen te maken. Gebruik een snapshot wanneer je één of meer nieuwe sandboxes wilt starten vanuit dezelfde vastgelegde bestandssysteem- en geheugenstatus.

Voor herbruikbare statussen, zie [Sandbox Snapshot](/docs/nl/guides/sandbox-snapshot).

## Netwerk

Als je een sandbox pauzeert waarop een service draait, wordt de service van buiten de sandbox ontoegankelijk en worden alle verbonden clients losgekoppeld. Nadat je de sandbox hebt hervat, wordt de service weer toegankelijk, maar clients moeten opnieuw verbinding maken.
