Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
603 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Bug dans le lancement d'un script a heure reguliere

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bug dans le lancement d'un script a heure reguliere

n°548871
IvanleFou
Posté le 23-10-2003 à 20:06:08  profilanswer
 

Bonjour,
 
J'ai un script PHP que je lance toutes les 30mins et dont le role est de remplir une table avec des valeurs recuperees sur une page web. Je fais ca avec le gestionnaire de tache planifiee. Jusque la pas de pbr sauf que lorsqu'il a fini la tache il laisse la page de IE ouverte et lorsque 30mins plus tard il relance la tache ben la page se met pas a jour. Par contre si entre 2 maj je ferme la page IE, au moment venu il ouvre une nouveal page et fait la maj correctement :??:  
 
La procedure pour ouvrir le script est simple. J'ai fait un fichier bat ou dedans j'ai mis la ligne de commande suivante: "start c:\web\monscript.php"
Et avec le gestionnaire de tache je lance ce fichier BAT.
 
Pour remedier a mon pbr je pensais, une fois le script fini, de fermer la fenetre avec un javascript du style "windows.close" mais je suis sous win2k et il me demande de confirmer la fermeture de la fenetre... :o  
 
Quelqu'un aurait une solution... svp :hello:  
 
Merci pour vos reponses

mood
Publicité
Posté le 23-10-2003 à 20:06:08  profilanswer
 

n°548890
MagicBuzz
Posté le 23-10-2003 à 20:25:40  profilanswer
 

1) Met ton script sur un serveur web en local.
2) Met cette commande dans ton gestionnaire de tâches (en modifiant au besoin l'url)

iexplore.exe "http://localhost/monscript.php"


3) Dans le gestionnaire des tâches toujours, tu indiques "fermer la tâche au bout de xx minutes"
 
Et adieu le problème. (d'ailleurs, t'as même pas besoin de fermer IE)

n°548891
MagicBuzz
Posté le 23-10-2003 à 20:27:09  profilanswer
 

En fait, iexplore marche pas.
 

explorer.exe "http://www.google.com"


 
Ca ça marche par contre.


Message édité par MagicBuzz le 23-10-2003 à 20:27:18
n°548900
IvanleFou
Posté le 23-10-2003 à 20:35:19  profilanswer
 

Bon j'ai mis a jour le fichier bat. je vais attendre les prochaines mises a jour mais je ne sais pas si ca va resoudre mon pbr...

n°548906
MagicBuzz
Posté le 23-10-2003 à 20:39:32  profilanswer
 

fais ce que je te dis, tu te prendras moins la tête...


Message édité par MagicBuzz le 23-10-2003 à 20:39:47
n°548932
IvanleFou
Posté le 23-10-2003 à 20:57:12  profilanswer
 

Dans l'onglet Parametres j'ai coche la case "Arreter la tache si elle s'execute durant:" et pour la duree j'ai mis 1min. c'est le mini qu'on peut mettre et l'execution du script prends quelques sec (Le max que j'ai vu c'est 25sec qd ca lag).
Mais bon ca me ferme pas la fenetre de IE au bout d'une minute car la tache a finie de s'executee (le script a fini)
 
...

n°548943
MagicBuzz
Posté le 23-10-2003 à 21:04:20  profilanswer
 

Chelou... Au boulot ça marche pourtant.

n°548967
IvanleFou
Posté le 23-10-2003 à 21:26:46  profilanswer
 

Autre alternative peut etre c'est a la fin de mon script rediriger sur une autre page.
 
Style je lance "monscript.php" a la fin il redirige vers une autre page "leurre.php" par exemple. Et a la prochaine relance automatique comme il va voir que la page c'est pas "monscript.php" donc il va le mettre a jour.
 
Qu'en penses-tu?
 
le seul pbr c'est que je ne sais pas faire de redir :/

n°548995
MagicBuzz
Posté le 23-10-2003 à 21:49:21  profilanswer
 

ouais, ça devrait marcher en effet, mais c'est un peu goret :D

n°549000
MagicBuzz
Posté le 23-10-2003 à 21:52:48  profilanswer
 

Sinon, essaie ma commande, avec /n à la fin.
 
Il ouvrira une nouvelle fenêtre à chaque fois :D

mood
Publicité
Posté le 23-10-2003 à 21:52:48  profilanswer
 

n°549002
MagicBuzz
Posté le 23-10-2003 à 21:53:50  profilanswer
 

sinon, si t'es patient, attends demain, je te file le code en VBS qui fonctionnera et sera plus propre (on verra même pas que l'explorateur est en train de faire tourner le script)

n°549094
IvanleFou
Posté le 23-10-2003 à 23:05:41  profilanswer
 

Effectivement c'est une methode de gros sale, mais bon on fait comme on peut... :/
 
Le truc d'ouvrir une fenetre a chaque ouais j'y ai pense. mais justement tout la semaine prochaine je suis pas chez moi et avec un script qui se lance toutes les 4 mins ca fait plus de 2500 fenetres de IE au bout de 7 jours :pt1cable:
 
Je serai patient jusqu'a demain. pas de pbr ;)

n°549215
MagicBuzz
Posté le 24-10-2003 à 00:20:39  profilanswer
 

ok.
pour une petite mise en bouche, ça donne un truc du genre :
 
dim inet
set inet = CreateObject("Application.InternetExplorer" )
inet.navigate "http://localhost.monscript.php"
do while not inet.ReadyState = OK
   doevents
loop
inet.Close
set inet = nothing
 
Mais l'objet s'appelle pas comme ça, et je me souvient plus de la valeur de la constante qui dit que IE a fini de charger la page...
 
www.devguru.com tu devrais je crois trouver ces infos


Message édité par MagicBuzz le 24-10-2003 à 00:21:51
n°551637
IvanleFou
Posté le 27-10-2003 à 15:53:27  profilanswer
 

Salut MagicBuzz,
 
T'as des nouvelles pour le script VBS? La j'avoue que j'y connais absolument rien en VBS. Si tu me dis po comment faire je ne saurais po par moi meme :(

n°551678
MagicBuzz
Posté le 27-10-2003 à 16:25:02  profilanswer
 

Tiens, je pensais justement à ton problème, et je me disais "tiens, c'était quel topic au fait ? puisqu'il se manifeste pas, il attendra un jour de plus..."
 
Pas de pot, tu viens de te réveiller :D
 
Alors :
 


const READYSTATE_COMPLETE = 4
 
dim inet
set inet = CreateObject("InternetExplorer.Application" )
 
inet.Navigate "http://www.server.com/ton_script.php"
Do While Not inet.ReadyState = READYSTATE_COMPLETE
    DoEvents
Loop
 
inet.Quit
Set inet = Nothing

n°551716
IvanleFou
Posté le 27-10-2003 à 17:28:48  profilanswer
 

desole de t'avoir fait une fausse joie :whistle:  
 
ce script j'en fait koi? je le mets dans un fichier .bat que je lance avec le planificateur de tache.
Faut le compiler?
 
T'es dit j'y connais rien en VBS. c'est meme la 1ere fois que j'en vois :pt1cable:

n°551719
MagicBuzz
Posté le 27-10-2003 à 17:30:50  profilanswer
 

Non, tu le met dans un fichier *.vbs
 
et tu le lance comme un programme compilé

n°551720
MagicBuzz
Posté le 27-10-2003 à 17:31:17  profilanswer
 

Le seul impératif, c'est que tu ait IE5 minimum et Windows 98 pour avoir tous les objets installés.

n°551767
IvanleFou
Posté le 27-10-2003 à 18:10:22  profilanswer
 

J'ai Win2k et IE6 donc ca devrait rouler.
 
J'ai mis le script dans un fichier *.vbs. j'ai change l'url (j'ai mis celle de google pour le 1er test) et il me retourne une erreur
ligne: 8
caract: 5
erreur: type incompatible: 'DoEvents'
code: 800A000D
 
En gros c'est le DoEvents qu'il aime pas :??:

n°551835
MagicBuzz
Posté le 27-10-2003 à 19:30:17  profilanswer
 

argh...
 
bah il est con ton truc :D
 
faut que tu trouves comment faire un sleep alors. chais pu comment on fait...
 
je regarde en vitesse

n°551850
MagicBuzz
Posté le 27-10-2003 à 19:45:39  profilanswer
 

Remplace "DoEvents" par "WScript.Sleep 100" (fait des pauses de 1/10 seconde pour laisser le temps au script de s'éxécuter sans bouffer tout le CPU)
 
C'est moins joli mais bon...
 
PS: si tu attends qu'il se passe quelquechose quand tu exécutes ton script, alors modifie-le de la façon suivante : (mais vire les modification ensuite, c'est juste pour voir ce qu'il fait)
 


const READYSTATE_COMPLETE = 4
 
dim inet
set inet = CreateObject("InternetExplorer.Application" )
 
inet.Navigate "http://www.google.com"
 
' Ligne à virer - Affiche IE
inet.visible = true
 
Do While Not inet.ReadyState = READYSTATE_COMPLETE
    WScript.Sleep 100
Loop
 
' Ligne à virer - On voit google
WScript.Sleep 5000
 
' Ligne à virer - Effectue une recherche sur "Manga-Torii"
inet.document.f.q.value = "Manga-Torii"
 
' Ligne à virer - Clique sur le bouton "J'ai de la chance"
inet.document.f.btnI.click()
 
' Ligne à virer
WScript.Sleep 5000
 
inet.Quit
Set inet = Nothing


 
VBS c'est maxi pratique pour automatiser des trucs sur Internet (on peut même programmer une machine à flooder sur le forum :D)


Message édité par MagicBuzz le 27-10-2003 à 19:47:14
n°552052
IvanleFou
Posté le 27-10-2003 à 23:08:56  profilanswer
 

Rhoooooo ca marche avec le sleep.
 
T'es un Dieu MagicBuzz :jap:
 
En tout cas je te remercie beaucoup pour ton aide. C'est franchement bien de partager tes connaissances et d'aider les autres.
 
PS: sais po si tu te souvient j'avais fait un post un peu avant celui-la pour optimiser l'affichage de tableaux. Tu m'avais donne une solution mais je n'ai pas vraiment eu le tps d'y regarder pour le moment. Mais je garde ca dans un coin. Tu risque de voir remonter ce topic ;)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Bug dans le lancement d'un script a heure reguliere

 

Sujets relatifs
Script shell Linux > petit prob avev exprRecuperer le répertoire de lancement d'un process à partir de son nom
Debug d'un script de gestion d'erreurforcer execution script PHP ou empecher fermeture fenetre?
Bug avec les formulaires (POST), PHP et XHTML strict.[PHP] un script pour récupérer des infos sur Allocine ?
Lancement de la JVM sous un profil Windows différentQuestion sur l'heure dans oracle ! HELP a newbie !
[PHP] Les sessions avec cookies - (script de PHPScript)[PHP] Cookies -> identification utilisateurs (exemple de script)
Plus de sujets relatifs à : Bug dans le lancement d'un script a heure reguliere


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR