Bonjour,
Je rencontre un problème de fonctionnement d'un petit service Windows développé avec WD19 et aurait besoin de l'expérience de chacun. Ce service est censé créer un fichier JPEG à partir de tout fichier PDF modifié dans un répertoire donné. Lorsque je copie plusieurs fichiers PDF dans le répertoire surveillé, tous les fichiers ne sont pas toujours traités et la surveillance de répertoire semble même s'arrêter. Le problème semble assez aléatoire. Je ne suis pas arrivé à reproduire ce cas lors de modification ou copie de fichiers unitaires.
Voici le détail des principales lignes de code:
"fSurveilleRépertoire" lancé dans la procédure d'initialisation du service Windows avec appel d'une procédure globale "TraiteModificationRepAppel". ThreadMode(threadSectionCritique) lancé dans cette même procédure d'init.
PROCEDURE TraiteModificationRepAppel(sNomRep, sNomFichier, nAction) Threadname est une chaîne Threadname = sNomFichier SI ThreadEtat(Threadname) = threadInexistant ALORS ThreadExécute(Threadname, threadAttendDémarrage, TraiteModificationRep, sNomRep, sNomFichier, nAction) FIN
PROCEDURE TraiteModificationRep(sNomRep, sNomFichier, nAction) SectionCritiqueDébut("Traite") // N lignes de traitement des modifications de fichiers PDF pour les convertir en JPEG SELON nAction CAS fsModificationFichier : sRacineFichier = Gauche(sNomFichier, Taille(sNomFichier) - 3) imgMyPDF = dChargeImage(sNomRep + "\" + sNomFichier, imgConvertir) SI imgMyPDF..Valide = Vrai ALORS ResSauvegarde = dSauveImageJPEG(imgMyPDF, sTargetFileDir2 + "\" + sRacineFichier + "jpg") FIN ServiceTemporise(10) FIN
SectionCritiqueFin("Traite")
A noter, j'ai essayé les alternatives suivantes, sans succès : PROCEDURE TraiteModificationRepAppel(sNomRep, sNomFichier, nAction) ExécuteThreadPrincipal(TraiteModificationRep,sNomRep, sNomFichier, nAction)
et: Appel direct à la procédure TraiteModificationRep en paramétrant l'automatisme de la procédure avec l'option "Exécution en tâche de fond (Thread)".
Merci par avance à chaque contributeur. |