PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → execution de deux taches en parallele
execution de deux taches en parallele
Iniciado por jocongo, 28,jun. 2019 12:33 - 2 respuestas
Miembro registrado
6 mensajes
Publicado el 28,junio 2019 - 12:33
Bonjour a tous !
j expose mon problème ci-dessous. Toute aide bienvenue ;-)

J'ai une application qui effectue des appels automatiques via Asterisk. Ça ça marche plutôt bien. JE voudrais pouvoir effectuer plusieurs appels en même temps.

En résumé mon code actuel fait ceci :

Sélection des numéros a appeler dans une table temporaire dédiée a cet effet
puis pour tout enregistrement de cette table
traitement de l'appel
mise a jour de la table pour signifier que cet enregistrement a été traité.

J ai fait quelques tentatives avec TâcheParallèleExécute sans grand succes...

Remarques et suggestions bienvenues. Merci d'avance
Publicado el 02,julio 2019 - 19:18
Bonjour,

Threads et sémaphores ?
Miembro registrado
6 mensajes
Publicado el 03,julio 2019 - 11:22
oui merci c est ce que j ai fait en fait Threads et files. Pour ceux que ça intéresse voici le code :

HExécuteRequête(REQ_sites2call,hRequêteDéfaut)
POUR TOUT REQ_sites2call
Enfile(mafile,REQ_sites2call.IDappsecutmp)
FIN
POUR i = 1 A gnBcalls // gnBcalls nombre d'appels en simultané.
ThreadExécute("thread" + i,threadNormal,pexecute, i)
FIN

PROCEDURE PEXECUTE

PROCEDURE pexecute(LOCAL numthread est un entier)
x est un entier
TANTQUE Défile(mafile, x)
fAjouteTexte("C:\TEMP\thread.txt",HeureVersChaîne(HeureSys()) + " - traitement id n° " + x + " thread n °" + numthread + RC)

HLitRecherche(appsecutmp,IDappsecutmp,x)
SI HTrouve(appsecutmp) ALORS
fAjouteTexte("C:\TEMP\thread.txt",HeureVersChaîne(HeureSys()) + " - traitement site " + appsecutmp.NomSite + " thread n °" + numthread + RC)
FIN
FIN

REQ SITES2CALL
SELECT
appsecutmp.IDappsecutmp AS IDappsecutmp,
appsecutmp.IDSite AS IDSite,
appsecutmp.IDClient AS IDClient,
appsecutmp.NuméroGFU AS NuméroGFU,
appsecutmp.NomSite AS NomSite,
appsecutmp.IDSitesZones AS IDSitesZones,
appsecutmp.dateheureappel AS dateheureappel,
appsecutmp.resultat AS resultat
FROM
appsecutmp
WHERE
appsecutmp.resultat NOT IN (0, 1, 3)