Page 1 sur 1
[R] Script qui s'execute tous les 10 minutes??
Posté : mar. 13 nov. 2007 20:30
par Kurser
Bonjour!!
En faite mon but est de céer un script qui s'executerai tous les 10 minutes...
Je suis encore un novice en la matiére, si quelqu'un pourrait m'aider
Merci

Posté : mar. 13 nov. 2007 20:55
par Tlem
Faites une boucle pour lancer votre script, et ajouter une pause de 10Mn !
Boucle?
Posté : mar. 13 nov. 2007 21:26
par Kurser
Désolé mais peux-tu me donner un exemple de boucle??
je sais qu'il faut utiliser
while mais je ne sais pas comment formuler le tous..
Si je pouvais avoir un exemple??? Merci mile fois!!!!

Posté : mer. 14 nov. 2007 00:06
par SurPriseS
Moi j'avais fait sa pour un script :
Code : Tout sélectionner
While 1
if _DateTimeFormat( _NowCalc(),4) = $sNewDate Then
$sNewDate = _DateAdd( 'n',10, _NowCalc())
$sNewDate = _DateTimeFormat($sNewDate,4)
MsgBox( 4096, "", "Heure +10 minutes: " & $sNewDate )
EndIf
WEnd
Re: Boucle?
Posté : mer. 14 nov. 2007 00:14
par Tlem
Kurser a écrit :Désolé mais peux-tu me donner un exemple de boucle??
Il faudrais voir quel type de script vous compter lancer toutes les dix minutes.
De plus, l'idée de SurPriseS pourrait très bien s'adapter à votre cas.
Posté : mer. 14 nov. 2007 17:05
par Kurser
Merci
SurPriseS pour l'exemple
Par contre je l'intergre comme dans mon script????
en faite dans mon script, je lance un fichier batch qui contient des requettes SQL et je voudrais ke ce batch j'execute tous les dix minutes ( et meme par la suite le mettre en service)
Je vous savoir comment
j'intergre la boucle dedans..
Merci

Posté : mer. 14 nov. 2007 21:13
par SurPriseS
Y'a pas de soucis

Bref suffit de rajouter vos instructions a exécuter dans la boucle, à la place de
Sinon dire comment l'intégrer bah sa dépend de votre script

Posté : mer. 14 nov. 2007 21:47
par Tlem
Première approche :
Code : Tout sélectionner
#include <Misc.au3>
; Controle si l'application est déja lancée.
If _Singleton ( @ScriptFullPath , 1 ) = 0 Then Exit
; Combinaison de touche pour quitter le script en cours.
HotKeySet ( " + !s" , "Fin" ) ; Shift - Alt - s pour sortir du script.
While 1
RunWait ( "C:\Batch\MonBatch.bat" , "" , @SW_HIDE )
Sleep ( 1000 * 600 ) ; 1000ms * ( 10mn = 10 * 60s = 600 )
WEnd
Func Fin ( )
Exit
EndFunc
2iem approche #include <Misc.au3>
Code : Tout sélectionner
#include <Date.au3>
; Controle si l'application est déja lancée.
If _Singleton ( @ScriptFullPath , 1 ) = 0 Then Exit
; Combinaison de touche pour quitter le script en cours.
HotKeySet ( " + !s" , "Fin" ) ; Shift - Alt - s pour sortir du script.
$sNewDate = _DateAdd ( 'n' , 10 , _NowCalc ( ) )
While 1
If _DateTimeFormat ( _NowCalc ( ) , 4 ) = $sNewDate Then
$sNewDate = _DateAdd ( 'n' , 10 , _NowCalc ( ) )
$sNewDate = _DateTimeFormat ( $sNewDate , 4 )
RunWait ( "C:\Batch\MonBatch.bat" , "" , @SW_HIDE )
EndIf
WEnd
Func Fin ( )
Exit
EndFunc
Vous avez le choix ...
Posté : mer. 14 nov. 2007 21:54
par Voodoo
eh bien personne ne connez donc
timerinit() !
Code : Tout sélectionner
$begin = TimerInit ( )
sleep ( 3000 )
$dif = TimerDiff ( $begin )
MsgBox ( 0 , "Time Difference" , $dif )
Tres utile ! surtout si vous voulez faire autre chose pendant les 10 min..
un autre exemple:
Code : Tout sélectionner
$begin = TimerInit ( )
while 1
sleep ( 1 )
if TimerDiff ( $begin ) > 5000 then exit msgbox ( 0 , "Timer" , "5 secondes deja !" )
wend
Posté : mer. 14 nov. 2007 21:57
par Tlem
Oups, je l'avais oublier celui-là ...
Posté : mer. 14 nov. 2007 21:58
par sylvanie
tiens, moi aussi, je vais mettre ma petite fonction fétiche : "adlibenable" qui est un joker (car on n'a droit qu'à une fonction lancer à la fois par cette dernière) qui crée une sorte de thread en rendant la main au script.
Très utilie pour lancer des routine à répétition temporelle à l'intérieure d'un while
Posté : jeu. 15 nov. 2007 00:09
par Tlem
Code : Tout sélectionner
$begin = TimerInit ( )
Sleep ( 1000 * 600 )
$dif = TimerDiff ( $begin )
MsgBox ( 0 , "Time Difference" , StringFormat ( "%d secondes" , $dif/1000 ) )
Ce script m'a bien afficher 600 secondes, soit 10 minutes.
Je considère donc que le sleep ce base sur le temps machine.
De plus, part rapport à la deuxième solution que j'ai proposer précédemment, cette solution ne consomme pas de temps processeur, alors que l'autre est mortelle (+ de 95%) ...
Edit : Si on rajoute un Sleep(1000) juste avant le Wend, la consomation CPU devient presque nulle.
Posté : jeu. 15 nov. 2007 01:01
par Voodoo
Effectivement comme il n'y a rien dans la boucle ce n'est pas très rentable. Il faut y ajouter votre programme. Sinon reglez le sleep a 100 ou a 10 suivant votre processeur

Posté : jeu. 15 nov. 2007 22:28
par Kurser
Merci Beaucoup!!!! c ok
Super ce forum!!!!!!!