J'ai un DAG Airflow qui doit être déclenché chaque fois que je reçois une réponse spécifique d'un point de terminaison REST. Je dois vérifier ce point de terminaison dans un intervalle spécifique (quelques minutes). J'ai étudié comment mettre en œuvre cela et j'ai trouvé deux approches différentes:

  1. mettre en œuvre un capteur http et interroger le point de terminaison jusqu'à ce que la condition soit remplie,

Ou

  1. programmez simplement mon DAG pour qu'il s'exécute toutes les 2 minutes et vérifiez le point de terminaison http dans la première tâche de mon DAG.

Ma question est, quelle serait la différence entre ces 2 approches? Je suppose que 1) le DAG est toujours en cours d'exécution pendant que le capteur appelle le point de terminaison toutes les X secondes, tandis que 2) l'appel du DAG se termine si la réponse de l'API est négative.

Merci!

0
OCDev 13 mars 2021 à 07:47

1 réponse

Meilleure réponse

La première approche semble plus logique :

  • Dans la version 2 d'Airflow, des capteurs intelligents ont été ajouté et il est possible d'exécuter les tâches de longue durée de manière plus optimale.

  • L'exécution continue d'un workflow (Option 2) entraîne l'insertion de nombreux enregistrements dans la base de données interne Airflow, ce qui nécessitera un workflow distinct pour effacer la base de données.

  • La première méthode est plus proche de la logique de ce travail.

Personnellement, je préfère la première méthode.

0
smbanaei 13 mars 2021 à 15:38