OVH Cloud OVH Cloud

Service windows et watcher

1 réponse
Avatar
mc
Bonjour,


Il y a quelques temps j'ai développé un service avec un watcher
sur un répertoire. A l'arrivée de fichiers avec une extension précise
je lance un script précis.
Comme je ne voulais pas que les traitements se chevauchent
j'ai ajouté une bloucle d'attente sur la fin du processus en question
et tout allait très bien.

Maintenant j'ai tout un tas de types de fichiers qui peuvent arriver
avec différents scripts associés le tout stocké en bdd.
A chaque nouveau fichier je regarde dans la bdd à quel script
il correspond et je voudrais lancer ce script seulement si y en a pas un
de ce type déjà en cours. On peut d'une manière ou d'une autre détecter
que ce type de script est déjà lancé mais après comment le relancer
sur le fichier déjà récupéré par le watcher si ce n'est le stocker en
mémoire ?
Et sinon y a-t il plus simple ?

Merci d'avance.

mc

1 réponse

Avatar
Sébastien Curutchet
La première idée qui me vient, est de créer un pool par type de fichier. Tu
rajoutes dans le pool les nouveaux fichiers à traiter.
Pour ce qui est d'empêcher que le même traitement se lance deux fois et ce
"en même temps", utilises la
--
Sébastien Curutchet
MVP VB (répond aussi aux question .NET et C# : faut bien se reconvertir ;) )
Membre de la communauté dotnet.developpez.com méthode des sections critiques
: mot clé lock, classe Monitor, etc ...





"mc" a écrit dans le message de
news:4117cbf7$0$306$
Bonjour,


Il y a quelques temps j'ai développé un service avec un watcher
sur un répertoire. A l'arrivée de fichiers avec une extension précise
je lance un script précis.
Comme je ne voulais pas que les traitements se chevauchent
j'ai ajouté une bloucle d'attente sur la fin du processus en question
et tout allait très bien.

Maintenant j'ai tout un tas de types de fichiers qui peuvent arriver
avec différents scripts associés le tout stocké en bdd.
A chaque nouveau fichier je regarde dans la bdd à quel script
il correspond et je voudrais lancer ce script seulement si y en a pas un
de ce type déjà en cours. On peut d'une manière ou d'une autre détecter
que ce type de script est déjà lancé mais après comment le relancer
sur le fichier déjà récupéré par le watcher si ce n'est le stocker en
mémoire ?
Et sinon y a-t il plus simple ?

Merci d'avance.

mc