PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Envoi d'un traitement en thread
Envoi d'un traitement en thread
Iniciado por roumegou, 14,feb. 2020 10:07 - 1 respuesta
Publicado el 14,febrero 2020 - 10:07
Bonjour,

j'ai un traitement batch qui pour des raisons de volume et de
complexité prend une dizaine d'heures voire plus. Je pense être allé
assez loin dans l'optimisation mais je voudrais tenter une autre
approche.
En gros je traite un fichier client d'un peu plus de 700000 enregs que
je dois croiser avec des actions ce qui me génére 1 ou 2 millions de
lignes en sorties. (base mysql)

Je voudrais scinder les traitements par groupe de pays et les envoyer
concurrement afin de réduire le temps global de traitement qui
passerait la nuit.
J'ajoute que cela tourne en tâche planifiée (avec webdev)
j'ai bien la possibilité de faire plusieurs tâches planifiées mais
j'aimerai essayer les threads (que je ne connais pas)


est-ce qu'une tâche planifiée pourrait envoyer en même temps 4 ou 5
threads correspondant à mes 4 ou 5 groupes ?
Je vous remercie par avance de vos réponses.

--
Roumegou Eric
Publicado el 14,febrero 2020 - 11:53
Roumegou Eric a exposé le 14/02/2020 :
Bonjour,

j'ai un traitement batch qui pour des raisons de volume et de complexité
prend une dizaine d'heures voire plus. Je pense être allé assez loin dans
l'optimisation mais je voudrais tenter une autre approche.
En gros je traite un fichier client d'un peu plus de 700000 enregs que je
dois croiser avec des actions ce qui me génére 1 ou 2 millions de lignes en
sorties. (base mysql)

Je voudrais scinder les traitements par groupe de pays et les envoyer
concurrement afin de réduire le temps global de traitement qui passerait la
nuit.
J'ajoute que cela tourne en tâche planifiée (avec webdev)
j'ai bien la possibilité de faire plusieurs tâches planifiées mais j'aimerai
essayer les threads (que je ne connais pas)


est-ce qu'une tâche planifiée pourrait envoyer en même temps 4 ou 5 threads
correspondant à mes 4 ou 5 groupes ?
Je vous remercie par avance de vos réponses.


bonjour,

est ce que le traitement batch écrit dans les données qu'il traite =>
le traitement batch écrit dans les actions ?
si oui il faut alors se prémunir contre les accès simultanés aux
ressources partagées (sémaphore / section critique)
si non le traitement batch ne fait que des lectures de données et écrit
son résultat alors aucun pb majeur en vue

en simplifié un thread est une fonction appelés x fois dont le
traitement s'effectue en //

donc pour moi une tâche planifier qui appelle une fonction maître qui
elle même va appeler la fonction de traitement en thread

--
Cordialement JeAn-PhI