Catégories :

Fonctions système (Contrôle du système)

SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS

Annule une exécution de la tâche spécifiée que le système a déjà commencé à traiter (c’est-à-dire une exécution avec un statut EXECUTING dans la sortie TASK_HISTORY).

Syntaxe

SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS( '<task_name>' )
Copy

Arguments

task_name

Nom de la tâche.

Notes sur l’utilisation

  • Seul le propriétaire de la tâche (c’est-à-dire le rôle doté du privilège OWNERSHIP sur la tâche) ou un rôle doté du privilège OPERATE sur la tâche peut appeler cette fonction.

  • task_name est une chaîne, elle doit donc être placée entre guillemets simples :

    • Notez que le nom complet doit être placé entre guillemets simples, y compris la base de données et le schéma (si le nom est complètement qualifié), c’est-à-dire '<bd>.<schéma>.<nom_tâche>'.

    • Si le nom du canal est sensible à la casse ou inclut des caractères spéciaux ou des espaces, des guillemets doubles sont nécessaires pour traiter la casse/les caractères. Les guillemets doubles doivent être placés entre guillemets simples, c’est-à-dire '"<nom_tâche>"'.

  • Cette fonction renvoie un message de réussite avant que l’exécution en cours de la tâche spécifiée ne soit effectivement annulée.

  • Si l’exécution en cours de la tâche spécifiée est presque terminée, cette fonction peut ne pas annuler l’exécution.

  • Cette fonction annule uniquement l’exécution en cours de la tâche spécifiée. D’autres tâches dans un DAG qui inclut cette tâche peuvent également être en cours d’exécution. Pour annuler ces exécutions, vous devez appeler cette fonction et spécifier le nom de chaque tâche enfant supplémentaire séparément.

    Pour vérifier si l’exécution d’une tâche a été annulée ou terminée, ou si des tâches enfants sont en cours d’exécution, interrogez la fonction TASK_HISTORY.

  • Pour éviter le démarrage d’exécutions de la tâche, nous vous recommandons tout d’abord de suspendre la tâche (à l’aide de ALTER TASK … SUSPEND) et d’exécuter ensuite cette fonction.

    Notez que si la tâche n’est pas suspendue lorsque cette fonction est exécutée, plusieurs minutes sont actuellement nécessaires pour que les services Cloud de Snowflake reprennent la planification des exécutions de cette tâche.

Exemples

Abandonnez l’exécution en cours d’une tâche avec un nom insensible à la casse :

SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('mydb.myschema.mytask');
Copy

Abandonnez l’exécution en cours d’une tâche avec un nom sensible à la casse :

SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('mydb.myschema."myTask"');
Copy