- Categorias:
Funções do sistema (Controle do sistema)
SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS¶
Cancela uma execução da tarefa especificada que o sistema já começou a processar (ou seja, uma execução com um estado EXECUTING na saída TASK_HISTORY).
Sintaxe¶
SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS( '<task_name>' )
Argumentos¶
task_name
Nome da tarefa.
Notas de uso¶
Somente o proprietário da tarefa (ou seja, a função com o privilégio OWNERSHIP na tarefa) ou uma função com o privilégio OPERATE na tarefa pode chamar essa função.
task_name
é uma cadeia de caracteres, portanto, deve ser delimitada por aspas simples:O nome completo deve ser incluído entre aspas simples, incluindo o banco de dados e o esquema (se o nome for totalmente qualificado); por exemplo:
'<bd>.<schema>.<task_name>'
.Se o nome da tarefa diferenciar maiúsculas de minúsculas ou incluir caracteres especiais ou espaços, serão necessárias aspas duplas para processar as maiúsculas e minúsculas ou os caracteres. As aspas duplas devem ser colocadas entre aspas simples; por exemplo:
'"<task_name>"'
.
Essa função retorna uma mensagem de sucesso antes que a execução atual da tarefa especificada seja realmente cancelada.
Se a execução atual da tarefa especificada estiver quase concluída, essa função pode não cancelar a execução.
Essa função cancela apenas a execução atual da tarefa especificada. Tarefas adicionais em um gráfico de tarefas que inclui esta tarefa também podem estar em execução. Para cancelar essas execuções, você deve chamar essa função e especificar o nome de cada tarefa filho adicional separadamente.
Se uma tarefa for substituída usando CREATE OR REPLACE TASK, essa função não poderá cancelar as execuções em andamento da tarefa anterior.
Para interromper a execução de uma tarefa em andamento depois que você a substituir por CREATE OR REPLACE TASK:
Encontre o ID da consulta da execução em andamento; por exemplo:
select name, query_id, state, scheduled_time, error_message from table(information_schema.task_history(task_name => 'my_task'));
Cancele a consulta usando a função SYSTEM$CANCEL_QUERY com o ID da consulta, por exemplo:
select system$cancel_query('query_id');
Monitore a execução da tarefa por alguns segundos até que o cancelamento seja concluído, por exemplo:
select name, query_id, state, scheduled_time, error_message from table(information_schema.task_history(task_name => 'my_task'));
Para verificar se uma execução de tarefa foi cancelada ou concluída, ou se alguma tarefa filho está atualmente em execução, consulte a função TASK_HISTORY.
Para evitar futuras execuções da tarefa, recomendamos primeiro suspender a tarefa (usando ALTER TASK … SUSPEND) e depois executar esta função.
Observe que se a tarefa não for suspensa quando esta função for executada, atualmente serão necessários vários minutos para que os serviços de nuvem do Snowflake comecem a programar novamente a execução desta tarefa.
Exemplos¶
Cancela a execução atual de uma tarefa com um nome que não diferencia maiúsculas de minúsculas:
SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('mydb.myschema.mytask');
Cancela a execução atual de uma tarefa com um nome que diferencia maiúsculas de minúsculas:
SELECT SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS('mydb.myschema."myTask"');