Bonjour,
Est-il possible de planifier l'exécution d'une application à la fin d'une autre tâche planifiée?
Merci.
Bonjour,
Est-il possible de planifier l'exécution d'une application à la fin d'une autre tâche planifiée?
Merci.
Bonjour,
Non et Oui, tu ne donnes pas beaucoup d'info.
Non : Avec le planificateur, enfin vraiment pas facile...
Oui : Tout simplement à l'intérieur de la première tâche, à la fin tu lances la deuxième, pas de synchro à gérer...
[EDIT 19:19] : Tu fais un .bat qui contient les 2 tâches et tu lances le .bat dans le planificateur, ex :
DeuxTaches.bat :
Enfin il y a un tas de solutions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 C:\Strawberry\perl\bin\perl.exe E:\_APPLI\Mail\Mail.pl --SyntVocal C:\Strawberry\perl\bin\perl.exe E:\_APPLI\Developpez\Developpez.pl![]()
Voilà le détail: j'ai créé une tâche planifiée: l'exécution d'un .exe toutes les 15 minutes.
Je souhaiterais le lancement d'une autre application .exe à la fin de chaque exécution de la précédente.
Dans le premier programme, quand j'ai essayé de rajouter une ligne qui appelle le second exécutable, j'ai eu une erreur de curseur, que je n'ai pas su résoudre. C'est pour cela que j'ai pensé avoir recours aux tâches planifiées de Windows.
L'idée du .bat est pas malen cliquant sur le bat, les deux applications se lancent l'une après l'autre, nickel.
Quand le .bat est appelé par le planificateur de tâches, j'ai de nouveau cette erreur de curseur...
@dmganges: tu as parlé de plusieurs solutions, en as-tu à me proposer?
Oui, plusieurs solutions, mais j'entendais par là : résoudre des problèmes de synchronisation et, éventuellement des actions différentes pour la deuxième tâche en fonction des résultats de la première...
Deux pistes qui me viennent de suite à l'esprit :
1) des sémaphores, en C#, C++ ... on aime çà
2) un fichier écrit par la première tâche, et dans lequel la deuxième vient récupérer les infos qui lui faut...
...
Bon là le souci semble différent.
Si l'enchaînement des tâches est OK dans un .bat lancé manuellement, il faut comprendre pourquoi ce n'est pas le cas au travers du planificateur...
Quelques infos qui pourraient nous mettre sur la voie :
1) Que fait grosso modo le programme, il travaille sur des fichiers, une BDD, il utilise le net... de quelles ressource a-t-il besoin ???
2) Dans quel langage est-il écrit ?
... Tout indice peut être utile...
Par exemple s'il utilise une liaison ADSL, au moment du réveil le réseau est-il OK
Tu indiques un pb de curseur, dans quel domaine ?
Ouverture d'un curseur pour une requête sur une base Oracle... ?
Tu peux coller une image de l'exécution ?
...
Le premier programme envoie des mails, il utilise un serveur de messagerie SMTP. Tout m'a l'air d'être bien configuré.
Le second imprime des documents word.
Ces deux programme sont écrits en "Centura", langage dont presque personne n'a entendu parler
La base de données interrogée est IBM DB2. Je pense que le problème de curseur est lié à mon problème, mais je n'ai vraiment aucune idée de comment le résoudre.
J'ai joint une capture d'écran de l'erreur qui apparaît lors de l'exécution, mais je ne pense pas que ça puisse aider...
Touché, couléCes deux programme sont écrits en "Centura", langage dont presque personne n'a entendu parler
Merci pour l'image !
C'est le planificateur qui l'envoi ?
ERREUR IAD, IAD ça a une signification pour toi ?
Dans le .bat essai d'ajouter une pause :
As-tu l'historique de validé dans le planificateur, si oui est-ce qu'il est plus bavard ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 C:\Strawberry\perl\bin\perl.exe E:\_APPLI\Mail\Mail.pl --SyntVocal sleep 15 C:\Strawberry\perl\bin\perl.exe E:\_APPLI\Developpez\Developpez.pl
Bon la j'ai un creux, je n'aurai pas davantage d'idée avant
@+
Il y a un fichier IADError dans le package de l'application, je suppose donc qu'IAD fait référence à ce fichier-là.
L'historique ne m'aide pas trop malheureusement...
Bon appétit! et puis merci pour les réponses![]()
Bon, ça va mieux
On va essayer de procéder par élimination.
1) les deux tâches lancées manuellement par le .bat c'est OK
2) Il semble y avoir 2 ERREUR IAD
3) Dans la mesure où la deuxième tâche lance Word, ce n'est probablement pas elle qui en déclenche un.
+ Peux-tu, pour confirmer, lancer dans le planificateur seulement la deuxième tâche par l'intermédiaire d'un .bat
Je ne connais pas suffisamment le planificateur Windows, mais par similitude au cron Unix, ça ressemblerai à un problème de variables d'environnement.
Lorsque le planificateur lance la tâche, je ne suis pas certain que les variables environnement utilisateur soient évaluées.
Par analogie à Oracle/Unix ça serait une piste.
Tu peux t'en assurer en plaçant la commande env au début du .bat et en redirigeant toutes les commandes du .bat dans un .log
+ Que tu compares lancé en manuel et par le planificateur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 env > trace.log C:\Strawberry\perl\bin\perl.exe E:\_APPLI\Mail\Mail.pl --SyntVocal >> trace.log sleep 15 >> trace.log C:\Strawberry\perl\bin\perl.exe E:\_APPLI\Developpez\Developpez.pl >> trace.log
Quand je lance la première application par planificateur, l'erreur survient, et pareil pour la seconde application.
J'ai rajouté la commande env et modifié mon .bat de façon à ce qu'il ressemble au tien:
- Par planificateur, l'erreur de curseur survient et tout s'arrête. Aucune des deux applications n'est exécutée finalement.
- Manuellement, la première application s'exécute, la seconde non. Il ne se passe rien pour cette seconde application, je n'ai même pas un message d'erreur.
- Le fichier log est vide dans les deux cas.
Je n'y comprends plus rien à vrai dire![]()
Donc pour les deux indépendamment et dans le planificateur ça plante avec ERREUR IADQuand je lance la première application par planificateur, l'erreur survient, et pareil pour la seconde application.
Ben moi non plus !Je n'y comprends plus rien à vrai dire
Reviens voir la discussion de temps en temps, les idées mettent du temps à germer...
Quand je serai complètement sec je le mentionnerai![]()
Ok, merci pour les réponses en tout cas!
Dans le .bat pour avoir STDIN et STDERR, ajoute 2>&1
[EDIT]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 env > trace.log 2>&1 C:\Strawberry\perl\bin\perl.exe E:\_APPLI\Mail\Mail.pl --SyntVocal >> trace.log 2>&1 sleep 5 >> trace.log 2>&1 C:\Strawberry\perl\bin\perl.exe E:\_APPLI\Developpez\Developpez.pl >> trace.log 2>&1
Et lorsque tu lances les tâches indépendamment et manuellement en dehors de .bat ça donne quoi ?
En tout état de cause ça ne devrait pas mieux fonctionner, et dans ce cas il faut voir les pgm !
Ah c'est plus pratique comme ça! merci![]()
Oui, j'avais oublié ! les .bat, à part lancer une ligne de commande, ce n'est pas ma spécialité
Dis-nous s'il y a du nouveau !
Partager