[R] Script qui s'execute tous les 10 minutes??

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Kurser
Niveau 1
Niveau 1
Messages : 11
Enregistré le : ven. 26 oct. 2007 14:29
Status : Hors ligne

[R] Script qui s'execute tous les 10 minutes??

#1

Message 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 :roll:

Merci :)
Modifié en dernier par Kurser le jeu. 15 nov. 2007 22:29, modifié 2 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#2

Message par Tlem »

Faites une boucle pour lancer votre script, et ajouter une pause de 10Mn !

Code : Tout sélectionner

Sleep(10000)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Kurser
Niveau 1
Niveau 1
Messages : 11
Enregistré le : ven. 26 oct. 2007 14:29
Status : Hors ligne

Boucle?

#3

Message 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!!!! :)
SurPriseS
Niveau 6
Niveau 6
Messages : 289
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

#4

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Boucle?

#5

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Kurser
Niveau 1
Niveau 1
Messages : 11
Enregistré le : ven. 26 oct. 2007 14:29
Status : Hors ligne

#6

Message 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 :oops:
SurPriseS
Niveau 6
Niveau 6
Messages : 289
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

#7

Message par SurPriseS »

Y'a pas de soucis ;)
Bref suffit de rajouter vos instructions a exécuter dans la boucle, à la place de

Code : Tout sélectionner

MsgBox( 4096, "", "Heure +10 minutes: " & $sNewDate )
Sinon dire comment l'intégrer bah sa dépend de votre script ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#8

Message 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 ...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

#9

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#10

Message par Tlem »

Oups, je l'avais oublier celui-là ...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1550
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

#11

Message 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
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#12

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

#13

Message 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 :P
Kurser
Niveau 1
Niveau 1
Messages : 11
Enregistré le : ven. 26 oct. 2007 14:29
Status : Hors ligne

#14

Message par Kurser »

Merci Beaucoup!!!! c ok :lol: :lol:

Super ce forum!!!!!!!
Répondre