Minuterie de mise en veille personnalisée pour une application Streamlit¶
Cette rubrique décrit comment définir une minuterie de mise en veille personnalisée pour une application Streamlit dans Streamlit in Snowflake sur les entrepôts.
À propos des minuteurs de mise en veille pour les applications Streamlit¶
Les minuteurs de mise en veille ne s’appliquent qu’aux applications Streamlit qui utilisent des environnements d’exécution d’entrepôt. Les environnements d’exécution de conteneur (prévisualisation) sont destinés aux services de longue durée et ne prennent pas en charge les minuteurs de mise en veille.
La configuration de la minuterie de mise en veille s’effectue à l’aide du fichier de configuration config.toml de l’application Streamlit. Si votre appli a été créée avec le paramètre ROOT_LOCATION, vous devez utiliser SQL pour PLACER le fichier de configuration à l’emplacement de la zone de préparation de l’application. Sinon, vous pouvez utiliser SQL ou l’éditeur Snowsight Streamlit in Snowflake.
Expiration d’WebSocket¶
Lorsqu’un visualiseur ouvre une application Streamlit, une connexionWebSocket est établie entre le navigateur du visualiseur et le serveur Streamlit. S’il n’y a pas de minuterie de mise en veille personnalisée, l’application sera automatiquement suspendue après l’expiration de la connexion WebSocket en raison d’une période d’inactivité. Au niveau du compte, le délai par défaut de l’expiration de WebSocket est d’environ 15 minutes. Vous pouvez modifier le délai d’expiration de la connexion WebSocket pour votre compte pour toutes les applications Streamlit en contactant l’assistance de Snowflake.
Lorsque vous définissez une minuterie de mise en veille personnalisée, la minuterie tente de maintenir une application en alerte jusqu’à ce que la limite de temps spécifiée soit atteinte, puis tente de fermer la connexion en douceur. Toutefois, en fonction des paramètres du navigateur de l’utilisateur, le mécanisme de chronométrage peut être suspendu ou retardé par un onglet inactif du navigateur. Dans ce cas, l’application est soumise au paramètre de délai d’expiration de la connexion WebSocket. Par conséquent, si vous définissez une minuterie de mise en veille personnalisée qui est inférieure au délai d’expiration de la connexion WebSocket, votre application peut ne pas se suspendre automatiquement aussi rapidement que prévu dans certains scénarios. Pour de meilleurs résultats, définissez le délai d’expiration de la connexion WebSocket de sorte qu’il soit égal à la plus petite minuterie de mise en veille personnalisée utilisée par vos applications.
De plus, tout mouvement de souris sur une application réinitialisera à la fois le délai d’expiration de la connexion WebSocket et la minuterie de mise en veille personnalisée.
Définir une minuterie de mise en veille personnalisée avec Snowsight¶
Si votre application Streamlit utilise un environnement d’exécution d’entrepôt pour réduire les coûts de l’entrepôt de code, vous pouvez définir une minuterie de mise en veille personnalisée pour une application Streamlit afin qu’elle se suspende automatiquement. Si votre appli a été créée avec le paramètre ROOT_LOCATION, vous devez utiliser la commande PUT au lieu de Snowsight.
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez Projects, » Streamlit puis votre application Streamlit.
Dans le coin supérieur droit, sélectionnez Edit.
Si
.streamlit/config.tomln’existe pas, dans l’explorateur de fichiers à gauche, sélectionnez
» Create new file. Entrez .streamlit/config.tomlet sélectionnez Create.Dans l’explorateur de fichiers sur la gauche, accédez à
.streamlit/config.toml.Dans l’éditeur de fichiers, définissez la valeur de
streamlitSleepTimeoutMinutesdans la table[snowflake.sleep].Par exemple, si vous voulez que l’application Streamlit se suspende automatiquement après 8 minutes, ajoutez le texte suivant au fichier
config.toml:[snowflake] [snowflake.sleep] streamlitSleepTimeoutMinutes = 8
Définir une minuterie de mise en veille personnalisée à l’aide de la commande PUT¶
Si votre application Streamlit a été créée avec le paramètre ROOT_LOCATION, vous devez utiliser la commande PUT pour modifier le fichier de configuration de votre application. Si votre application Streamlit a été créée avec le paramètre FROM, vous pouvez utiliser la commande PUT ou Snowsight pour modifier le fichier de configuration de votre application.
Créez ou modifiez le fichier
config.tomlsur votre machine locale pour définirstreamlitSleepTimeoutMinutesdans la table[snowflake.sleep].Par exemple, si vous voulez que l’application Streamlit se suspende automatiquement après 8 minutes, ajoutez le texte suivant dans le fichier``config.toml`` :
[snowflake] [snowflake.sleep] streamlitSleepTimeoutMinutes = 8
Chargez le fichier
config.tomlà l’emplacement de la zone de préparation de votre application.Si votre application a été créée avec le paramètre ROOT_LOCATION, exécutez la commande suivante :
PUT file:///<path_to_your_local_directory>/config.toml @streamlit_db.streamlit_schema.streamlit_stage/.streamlit/ overwrite=true auto_compress=false;
Si votre application a été créée avec le paramètre FROM, exécutez la commande suivante :
PUT file:///<path_to_your_local_directory>/config.toml snow://streamlit/streamlit_db.streamlit_schema.streamlit_stage/versions/live/.streamlit/ overwrite=true auto_compress=false;
Pour plus d’informations sur l’utilisation des fichiers Streamlit, voir Créer et déployer des applications Streamlit à l’aide de SQL.
Note
Vous pouvez régler l’adresse streamlitSleepTimeoutMinutes sur une valeur comprise entre 5 et 240 minutes.
Si vous ne créez pas de fichier de configuration pour spécifier la minuterie, le délai de suspension automatique par défaut est de 15 minutes.