Cette page héritée est conservée pour les utilisateurs qui utilisent encore la gamme de SDK 1.x ou bêta. Les nouvelles intégrations avec le SDK 2.x doivent suivre la documentation Sandbox actuelle.
La persistance de sandbox vous permet de mettre votre sandbox en pause et de la reprendre plus tard dans le même état que celui où elle se trouvait lorsque vous l’avez mise en pause.
Cela inclut non seulement l’état du système de fichiers de la sandbox, mais aussi la mémoire de la sandbox. Cela signifie tous les processus en cours d’exécution, les variables chargées, les données, etc.
Veuillez noter :
- Il faut environ 4 secondes par 1 Go de RAM pour mettre la sandbox en pause.
- Il faut environ 1 seconde pour reprendre la sandbox.
- Les données d’une sandbox mise en pause sont conservées de manière permanente jusqu’à ce que vous appeliez explicitement la méthode
kill.
Mettre une sandbox en pause
Lorsque vous mettez une sandbox en pause, le système de fichiers et l’état de la mémoire de la sandbox sont enregistrés. Cela inclut tous les fichiers du système de fichiers de la sandbox ainsi que tous les processus en cours d’exécution, les variables chargées, les données, etc.
Remarque : brève période de transition après la mise en pauseLa mise en pause est une opération asynchrone. Après l’appel de beta_pause(), la sandbox se met en pause en arrière-plan.Pendant cette période de transition, avant que la mise en pause ne soit terminée :
- Opérations en lecture seule (par exemple,
get_info, list) : reviennent normalement ; le statut est affiché comme paused
- Opérations d’exécution (par exemple,
commands.run, accès aux URL publiques de la sandbox) : renverront des erreurs — c’est le comportement attendu. Attendez que la mise en pause soit terminée avant de réessayer (le temps varie selon la taille de la mémoire, voir la remarque ci-dessus)
- Opération de reprise (
connect) : attend automatiquement que la mise en pause soit terminée avant de reprendre la sandbox — aucune interrogation manuelle ni nouvelle tentative n’est nécessaire
Reprendre une sandbox
Lorsque vous reprenez une sandbox, elle se trouve dans le même état que celui où elle était lorsque vous l’avez mise en pause.
Cela signifie que tous les fichiers du système de fichiers de la sandbox seront restaurés et que tous les processus en cours d’exécution, les variables chargées, les données, etc. seront restaurés.
Si vous appelez connect() immédiatement après avoir appelé beta_pause(), connect() attend automatiquement que la mise en pause soit terminée avant de reprendre la sandbox. Aucune interrogation manuelle n’est requise — l’ensemble du processus est transparent pour l’appelant.
Si vous essayez de reprendre une sandbox qui a été détruite ou qui n’existe pas :
- Le SDK JavaScript lèvera
NotFoundError
- Le SDK Python lèvera
NotFoundException
Lister les sandboxes mises en pause
Vous pouvez lister toutes les sandboxes mises en pause en appelant la méthode Sandbox.list et en fournissant le paramètre de requête state.
Vous trouverez plus d’informations sur l’utilisation de la méthode dans Lister les sandboxes.
Supprimer des sandboxes mises en pause
Vous pouvez supprimer des sandboxes mises en pause en appelant la méthode kill sur l’instance de sandbox.
Délai d’expiration de la sandbox
Lorsque vous reprenez une sandbox, le délai d’expiration de la sandbox est réinitialisé au délai d’expiration par défaut d’une sandbox : 5 minutes.
Vous pouvez transmettre un délai d’expiration personnalisé à la méthode Sandbox.connect() comme ceci :
Réseau
Si vous avez un service (par exemple un serveur) en cours d’exécution à l’intérieur de votre sandbox et que vous mettez la sandbox en pause, le service ne sera pas accessible depuis l’extérieur et tous les clients seront déconnectés.
Si vous reprenez la sandbox, le service sera de nouveau accessible, mais vous devrez reconnecter les clients.