Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 28 juillet 2005 - 15 h 51 m 47 s |
|
|
j ai vu sur internet ce code pour creer un timer:
1. <?php
2.
3. function attente($time)
4. {
5. $tmp_time = time();
6. $i = $tmp_time;
7. $time = $tmp_time + $time;
8. while ($i < $time)
9. {
10. If (time() != $i) { $i++;}
11. }
12. }
13.
14. // Pour lancer la fonction : attente(secondes)
15. //Par exemple pour 10 secondes :
16.
17. attente(10);
18.
19. ?>
moi je comprends pas trop, ce code ce lance 1 fois et c fini!
pourtant on est bien d accord que logiqement un timer va repeter le code plusieurs fois?
de plus on met on le code que l on veut executer par exemple toutes les 10s?
merci d avance
|
|
| |
- je cherche un emploi
ICI
|
Woofy
Pour les bons tuyaux me demander
Messages : 26 213 Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
|
|
Posté le 28 juillet 2005 - 16 h 44 m 05 s |
|
|
Y a pas une fonction sleep en php? Ou repeat?
EDIT : repeat non, mais sleep et usleep oui!
http://fr.php.net/manual/fr/function.sleep.php
EDIT 2 : la fonction qu'ils te donnent ne fait qu'attendre en fait (et je me demande si ca va pas surcharger plus le processeur que la fonction sleep) et donc il faut que tu mette ca dans une boucle. N'oublie pas la condition d'arrêt!
|
|
| |
Message édité 2 fois, la dernière par Woofy le 28 juillet 2005 - 16 h 47. |
| |
Totalement inutile, donc completement indispensable 
|
Petit_PimoOosE
rsqrtps & pshufb
Messages : 4 617 Inscrit le 15/06/03
Ville : Montréal
Non connecté
|
|
Posté le 28 juillet 2005 - 18 h 45 m 55 s |
|
|
Très honnêtement, s'il y a bien une méthode que j'éviterais, c'est celle de la boucle d'attente
Woofy a raison, le polling monopolise le processeur. Par contre, un sleep, ça endort le processus pour le temps demandé, donc ça ne demande rien comme ressources.
|
|
| |
Message édité 1 fois, la dernière par Petit_PimoOosE le 28 juillet 2005 - 18 h 46. |
| |
Huile de fraise.
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 097 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 28 juillet 2005 - 19 h 29 m 54 s |
|
|
A 200% d'accord avec Pépé...
Bon sang, n'importe quelle personne ayant reçue une formation correcte en dév sait qu'une attente active est à éviter, contrairement à une attente passive !
C'est la base du multi-tâches !
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 29 juillet 2005 - 19 h 12 m 22 s |
|
|
je me sens pas vise je n ai pas recu de formation en dev correcte
|
|
| |
- je cherche un emploi
ICI
|
Woofy
Pour les bons tuyaux me demander
Messages : 26 213 Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
|
|
|
| |
Totalement inutile, donc completement indispensable 
|
Petit_PimoOosE
rsqrtps & pshufb
Messages : 4 617 Inscrit le 15/06/03
Ville : Montréal
Non connecté
|
|
Posté le 30 juillet 2005 - 02 h 12 m 18 s |
|
|
Juste pour "concrétiser" un peu le problème :
Mettons que tu doives faire quelque chose de précis à une certaine heure.
Avec une boucle d'attente, tu restes les yeux fixés sur l'horloge, et tu ne peux rien faire en même temps.
Avec sleep(), tu règles ton réveil à l'heure dite, ce qui fait que pendant ce temps, tu peux faire autre chose.
Je vois un autre problème potentiel (je ne suis pas sûr, par contre...) : tu as une variable ($time) et une fonction (time()) qui portent le même nom... Ça ne sème pas la confusion dans l'interpréteur ?
|
|
| |
Huile de fraise.
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 30 juillet 2005 - 11 h 41 m 15 s |
|
|
voila ce que j ai reecrit (bcp plus simple):
while(date('H:i')!='20:00')
{
sleep(1);
include 'code.php';
}
|
|
| |
- je cherche un emploi
ICI
|
Woofy
Pour les bons tuyaux me demander
Messages : 26 213 Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
|
|
Posté le 30 juillet 2005 - 12 h 28 m 34 s |
|
|
Pas mal.
En gros ton code se repete toutes les secondes jusqu'a 20h.
Question... ca sers a quoi?
|
|
| |
Totalement inutile, donc completement indispensable 
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 30 juillet 2005 - 13 h 18 m 38 s |
|
|
c un peu complique a expliquer....
en grosj ai un fichier qui s ecrit en temps reel avec tethereal (oui le fichier en question est en fait une trame IP)
Ensuite je recupere dans ce fichier des choses bien precises(numero de telephone) que j envoi a ma base de données pour une remontee de fiche.
C est pour cela que j ai besoin d avoir un qui puisse s executer tres tres svt et apres 20h il y a plus personne qui appel ou bien c est negligeable.
Seul soucis actuel: mon timeout pour le temps d execution d une commande. Le mien est actuellement a 30s...pour durer en gros 8h, va falloir que je l augmente serieusement. Es ce que ca peut consituer un risque quelconque?
|
|
| |
- je cherche un emploi
ICI
|
Petit_PimoOosE
rsqrtps & pshufb
Messages : 4 617 Inscrit le 15/06/03
Ville : Montréal
Non connecté
|
|
Posté le 30 juillet 2005 - 18 h 12 m 24 s |
|
|
Tu as accès à cron sur ton serveur (s'il est sous *nix) ? Si oui, tu peux lancer ton script PHP à intervalle régulier, toute la journée.
Par ailleurs, j'ai peur que ça fasse bizarre au client de recevoir des données pendant plusieurs heures, donc je maintiens pour le cron (ou le planificateur de tâches).
|
|
| |
Huile de fraise.
|
kha
Google is your best friend
Messages : 1 235 Inscrit le 01/03/02
Ville : Montreal
Non connecté
|
|
Posté le 31 juillet 2005 - 02 h 08 m 36 s |
|
|
franchement.... Si ca doit prendre des donnes d un fichier, les envoyer dans une BD, et le tout programme a certains moment, php c est pas la meilleure solution...
En java tu peux le faire facilement. En C aussi mais l apprentissage recquis est + long.
Check la classe Timer par exemple en java
http://java.sun.com/j2se/1.5.0/docs/api/
|
|
| |
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 31 juillet 2005 - 21 h 22 m 23 s |
|
|
non non j envoi rien dans une base de donnees!
j envoi juste une requete de type select a ma base de donnees pour verifier si le numero existe. bref la n est pas la question.
quel avantage j aurais en java par rapport au php?
le timer est le meme de chaque cote de tte façon...
mais c vrai que pour un autre truc (connexion sur un port a distance pour recuperer des informations) je pense faire ca en java...Alors un peu plus ou un peu moins
|
|
| |
- je cherche un emploi
ICI
|
kha
Google is your best friend
Messages : 1 235 Inscrit le 01/03/02
Ville : Montreal
Non connecté
|
|
Posté le 01 août 2005 - 01 h 28 m 03 s |
|
|
la principale raison pour utiliser le java a la place du php, c est que le php est tres limite par rapport, surtout pour ce que tu veux faire.
Le php c ets surtout utile pour dynamiser la presentation d une page web a partir d une BD. C est pas fait du tout pour traiter en temps reel mou des trames et envoyer l info qq part.
Surtout que la tu utilises un programme externe, du php et tu veux aussi utiliser du java...
Franchement, tu te compliques vie pour rien
En java, tu pourrais facilement faire un programme qui attend des entrees stdin (qui sera la sortie de ethereal) et qui traite cette entree (la trame) poru recupere les infos necessaie. Ensuite tu te connecte a la bd et tu fais tes autres trucs. T as pas besoin de te compliquer la vie avec du php.
Si tu veux je pourrais te donner un coup de main : ca m interesse comme truc, surtout que je fais pas mal de java.
Si tu me donnes + de details je peux te faire une ebauche de programme que tu pourras modifier pour l adapater plus a tes besoins.
|
|
| |
|
Florent42
Eh oui cette ville existe...;)
Messages : 2 459 Inscrit le 14/12/03
Ville : Saint-Etienne uniquement(pas de voiture)
Non connecté
|
|
Posté le 01 août 2005 - 09 h 27 m 51 s |
|
|
une question:
es ce que je peux carrement dire a tethereal d envoyer les infos directement au programme java sans passer par un fichier texte? es ce que java saura recuperer les trames? parce que ca serait encore plus simple si ca marche ainsi...
(pour tethereal il suffit de dire ou on l envoi c tres simple)
|
|
| |
- je cherche un emploi
ICI
|
kha
Google is your best friend
Messages : 1 235 Inscrit le 01/03/02
Ville : Montreal
Non connecté
|
|
Posté le 01 août 2005 - 19 h 32 m 38 s |
|
|
oui : suffit que tu fasse une redirection (un pipe) sur ta ligne de commande et els sorties de tethereal seront redirigee dans System.in en java
|
|
| |
|