Une des choses que nous essayons de créer en tant qu’ingénieurs est un système robuste qui continue de fonctionner en cas de défaillance. Cette semaine, nous allons étendre ces capacités en examinant les tâches : même si une tâche échoue, sa tâche enchaînée doit continuer à s’exécuter.
Pour ce défi, nous avons une tâche prompte aux erreurs (pour une raison que nous n’avons toujours pas comprise 😉 ), mais même si la tâche échoue, nous voulons quand même une notification dans notre table indiquant que la tâche a échoué.
Le code:
CREATE OR REPLACE TABLE task_table (stamp time, message varchar);
CREATE OR REPLACE TASK main_task
SCHEDULE = '1 minute'
USER_TASK_MANAGED_INITIAL_WAREHOUSE_SIZE = 'XSMALL'
AS
SELECT CASE
WHEN RANDOM() <0 THEN 1/0
ELSE 1
END;
CREATE OR REPLACE TASK child_task
AFTER main_task
AS
INSERT INTO task_table (stamp,message) VALUES(CURRENT_TIMESTAMP,'main_task succes!');
Le défi
Nous voulons que vous écriviez une tâche qui est chaînée à main_task et qui s’exécute toujours même si main_task échoue. La tâche devrait simplement insérer le message ‘task ran’ dans task_table avec un horodatage correspondant.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.