Talend: Le mode multithreading

Voici une fonction peu connue et peu utilisée avec Talend, il s’agit de la fonction de multithreading.

Déroulement du test

Pour tester cette fonctionnalité, nous allons créer un job enfant qui sera appelé plusieurs fois par un job parent en lui passant un paramètre de durée (entre 1 et 5 secondes). Nous le lancerons en mode séquentiel puis en mode multithreading.

Le job enfant « thread »

article3_image1_Talend_Multithread

Ce job va simplement faire une pause de quelques secondes défini en paramètre (context.duree). Il est composé d’un « tSleep » et des composants « tChronoMeter » pour renvoyer l’affichage de la durée dans la console.

Le job parent « TestMultiThread »

Ce job consiste à utiliser le composant tLoop et de le paramétrer avec un nombre défini d’itération, dans notre exemple, nous lui passerons la valeur cinq.

Si on exécute ce job normalement (sans multi-thread), le job enfant est appelé 5 fois, la console nous affiche les 5 appels séquentiels du job enfant.

article3_image2_Talend_Multithread

Le paramétrage

Pour activer la fonctionnalité il faut se rendre dans l’onglet « extra » des propriétés du projet et de cocher la case suivante :

article3_checkbox_Talend_Multithread

Comme nous utilisons un sous job, il faut précisez à Talend d’utiliser un processus indépendant

article3_image3_Talend_Multithread

Le dernier réglage se fait sur le flux d’itération, vous pouvez indiquer combien de thread seront lancés en même temps, cocher « exécuter parallèlement » et entrer un nombre, idéalement le même que le nombre d’itération du tLoop.

article3_image4_Talend_Multithread

Exécution multithreading

Voilà, il ne reste plus qu’à lancer à nouveau le job, on constate que les cinq thread démarrent en même temps mais qu’ils se terminent dans l’ordre de la durée de chacun.

article3_image5_Talend_Multithread

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

Petit calcul pour valider votre commentaire! merci * Time limit is exhausted. Please reload CAPTCHA.