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

# Exécuter des sandboxes de longue durée

> Configurez une durée de vie pouvant atteindre 30 jours pour vos sandboxes serverless.

Les sandboxes serverless peuvent s’exécuter pendant 30 jours maximum (2 592 000 secondes). Définissez la durée de vie lors de la création de la sandbox afin de laisser à un agent, à un environnement de développement ou à une charge de travail par lots suffisamment de temps pour se terminer.

Ce guide explique comment demander une durée de vie plus longue.

## Before you begin

Effectuez la [configuration du sandbox](/fr/products/sandboxes/serverless/get-started). Les exemples Python nécessitent le package `cwsandbox` avec l’option supplémentaire `wandb`, ainsi qu’une clé API W\&B définie dans la variable d’environnement `WANDB_API_KEY`. Remplacez `[WANDB-API-KEY]` par votre clé API W\&B :

```bash theme={"system"}
pip install --upgrade 'cwsandbox[wandb]'
export WANDB_API_KEY="[WANDB-API-KEY]"
```

## Choose a lifetime

The lifetime is an upper bound on how long the sandbox can run. The platform terminates it when the lifetime expires, even if work is still in progress. A workload that finishes or a sandbox that you stop can end sooner.

| Paramètre | Sans serveur |
| - | - |
| Durée de vie par sandbox | Définissez-la à l’aide du kit de développement logiciel (SDK) ou dans la requête de création du sandbox. |
| Valeur par défaut de la politique de l’exécuteur | Gérée par CoreWeave. |
| Durée de vie maximale | 30 jours. |

An explicit lifetime takes precedence over a runner-policy default. If you omit the lifetime, the platform uses the applicable policy default. If no positive default supplies a lifetime, the platform uses 10 minutes (600 seconds). Set the lifetime explicitly for long-running work instead of relying on a default.

La plateforme rejette les requêtes dépassant 30 jours. La valeur `0` ne correspond pas à une durée d'exécution illimitée.

You can't extend the lifetime after a sandbox starts. Choose enough time at creation, and plan to save your work before the deadline.

## Set the lifetime when creating a sandbox

En Python, utilisez `max_lifetime_seconds`. L’exemple suivant demande la durée complète de 30 jours et affiche l’ID du sandbox pour que vous puissiez vous y reconnecter plus tard :

```python title="Create a Serverless sandbox" theme={"system"}
from cwsandbox import AuthStrategy, Sandbox

sandbox = Sandbox.run(
    "sleep", "infinity",
    auth=AuthStrategy.WANDB,
    placement_mode="serverless",
    container_image="python:3.11",
    resources={"cpu": "2", "memory": "4Gi"},
    max_lifetime_seconds=30 * 24 * 60 * 60,
)
sandbox.wait()
print(sandbox.sandbox_id)
```

The script prints the sandbox ID. These examples keep the primary process alive with `sleep infinity` and leave the sandbox running after the script exits. When you finish using the sandbox, stop it.

The same lifetime is available through the other client interfaces:

| Interface | Configuration de la durée de vie |
| - | - |
| SDK Python | `Sandbox.run(max_lifetime_seconds=2592000, ...)`. Pour définir des valeurs par défaut partagées au niveau du client, utilisez `SandboxDefaults(max_lifetime_seconds=2592000)`. Un argument explicite prévaut sur la valeur par défaut du client. |
| SDK TypeScript | Transmettez `maxLifetimeSeconds: 2592000` dans les options de `client.run()`. |
| Importation d’un fichier Compose | Définissez le champ de premier niveau `maxLifetimeSeconds` de la requête sur `2592000` dans `POST /v1/sandboxes:createFromFile`. La durée de vie est un paramètre de la requête, et non une propriété d’un service Compose. |

Pour connaître le format de la requête, consultez [Créer une sandbox à partir d’un fichier Compose](/products/sandboxes/serverless/create-from-file). Pour connaître les valeurs par défaut du client Python, consultez [Configuration de la sandbox](/fr/products/sandboxes/serverless/client/guides/sandbox-configuration#max_lifetime_seconds).

## Keep working across client sessions

When a sandbox should outlive the Python script that launches it, create a standalone sandbox, as in the preceding examples. A `with Sandbox.run(...)` context stops the sandbox when the block exits, even if its configured lifetime is 30 days. A `Session` also manages cleanup of the sandboxes it owns. See [Cleanup patterns](client/guides/cleanup-patterns).

To reconnect from another script, replace `[SANDBOX-ID]` with the ID printed at creation:

```python title="Reconnect to a running sandbox" theme={"system"}
from cwsandbox import AuthStrategy, Sandbox

sandbox = Sandbox.from_id(
    "[SANDBOX-ID]",
    auth=AuthStrategy.WANDB,
).result()
result = sandbox.exec(["echo", "Connected"]).result()
print(result.stdout)
```

The command prints `Connected`. Reconnecting doesn't reset the lifetime. When you finish, stop the sandbox explicitly:

```python title="Stop a sandbox" theme={"system"}
from cwsandbox import AuthStrategy, Sandbox

sandbox = Sandbox.from_id(
    "[SANDBOX-ID]",
    auth=AuthStrategy.WANDB,
).result()
sandbox.stop().result()
```

## Plan for expiry

Enregistrez les résultats ou les points de contrôle en dehors de la sandbox avant l’expiration de sa durée de vie. Si un flux de travail dure plus de 30 jours, créez une sandbox de remplacement et reprenez à partir de l’état enregistré. Pour connaître les options de stockage et d’instantanés prises en charge, consultez [Volumes de sandbox](/fr/products/sandboxes/serverless/volumes) et [Instantanés du système de fichiers](/products/sandboxes/serverless/file-system-snapshots).

The sandbox lifetime is separate from the timeout for a command or API request. Increasing `timeout_seconds` or `request_timeout_seconds` doesn't extend the sandbox lifetime. For the differences, see [Timeouts](client/guides/sandbox-configuration#timeouts).
