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 »
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.
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 :
Comme nous utilisons un sous job, il faut précisez à Talend d’utiliser un processus indépendant
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.
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.