OVH Cloud OVH Cloud

Taches sans le client ?

7 réponses
Avatar
Mobilator
Bonjour à tous.

J'ai mon serveur qui doit faire 2 taches particulieres et je sais pas du
tout comment faire.

1 : Quand le client se connecte au serveur php, et qu'il fait une demande,
le serveur ouvre une connection ftp vers un autre serveur et envoye une
requette.

Par contre, la réponse à la requette peut mettre 1mn à arriver et le client
peut ne plus être connecté à ce moment. Comment recevoir la réponse et la
traiter ?


2 : Mes clients peuvent demander au serveur php de faire certaines taches à
des heures qu'ils determinent. Ces heures sont mises dans la base de donnée.
Comment mon serveur php peut il vérifier trés régulierement de lui meme la
base de donnée mysql pour voir si il y a des taches à effectuer ?

Merci à tous.

7 réponses

Avatar
(¯`·..Yttrium ...·´¯)
Bonjour à tous.

J'ai mon serveur qui doit faire 2 taches particulieres et je sais pas du tout
comment faire.

1 : Quand le client se connecte au serveur php, et qu'il fait une demande, le
serveur ouvre une connection ftp vers un autre serveur et envoye une
requette.

Par contre, la réponse à la requette peut mettre 1mn à arriver et le client
peut ne plus être connecté à ce moment. Comment recevoir la réponse et la
traiter ?


2 : Mes clients peuvent demander au serveur php de faire certaines taches à
des heures qu'ils determinent. Ces heures sont mises dans la base de donnée.
Comment mon serveur php peut il vérifier trés régulierement de lui meme la
base de donnée mysql pour voir si il y a des taches à effectuer ?

Merci à tous.



Bjr,
Ce n'est pas du Php, il s'agit de commande système.
Voir du coté de CRON
Salutations

--
(¯`·..Yttrium ...·´¯)
Pour me répondre en privé: Passez un coup de balai

Avatar
loufoque
Mobilator a dit le 08/03/2005 à 00:31:

1 : Quand le client se connecte au serveur php, et qu'il fait une demande,
le serveur ouvre une connection ftp vers un autre serveur et envoye une
requette.

Par contre, la réponse à la requette peut mettre 1mn à arriver et le client
peut ne plus être connecté à ce moment.


Comment ça le client peut ne plus être connecté ?
Je ne vois pas ce que tu veux dire par là.


Comment recevoir la réponse et la
traiter ?


Bah si le client est parti, c'est pas vraiment la peine de lui donner la
réponse.


2 : Mes clients peuvent demander au serveur php de faire certaines taches à
des heures qu'ils determinent. Ces heures sont mises dans la base de donnée.
Comment mon serveur php peut il vérifier trés régulierement de lui meme la
base de donnée mysql pour voir si il y a des taches à effectuer ?


Avec ce qu'on appelle un cron.
Utilitaire crontab sous linux, sinon il y a aussi le service webcron.org

Avatar
sale_mac
"Mobilator" wrote in message news:...
Bonjour à tous.

J'ai mon serveur qui doit faire 2 taches particulieres et je sais pas du
tout comment faire.

1 : Quand le client se connecte au serveur php, et qu'il fait une demande,
le serveur ouvre une connection ftp vers un autre serveur et envoye une
requette.

Par contre, la réponse à la requette peut mettre 1mn à arriver et le client
peut ne plus être connecté à ce moment. Comment recevoir la réponse et la
traiter ?


2 : Mes clients peuvent demander au serveur php de faire certaines taches à
des heures qu'ils determinent. Ces heures sont mises dans la base de donnée.
Comment mon serveur php peut il vérifier trés régulierement de lui meme la
base de donnée mysql pour voir si il y a des taches à effectuer ?

Merci à tous.



Tu peux utiliser ce qu'on appel un CRON, ton serveur doit te permettre
d'en faire sinon j'vois pas d'autre options.

Avatar
John GALLET
Bonjour,

1 : Quand le client se connecte au serveur php, et qu'il fait une demande,
le serveur ouvre une connection ftp vers un autre serveur et envoye une
requette.
Par contre, la réponse à la requette peut mettre 1mn à arriver et le client
peut ne plus être connecté à ce moment. Comment recevoir la réponse et la
traiter ?
Il faut un job en background (cf http://faqfclphp.free.fr/#rub4.2 ou jouer

éventuellement avec ignore_user_abort().


2 : Mes clients peuvent demander au serveur php de faire certaines taches à
des heures qu'ils determinent. Ces heures sont mises dans la base de donnée.
Comment mon serveur php peut il vérifier trés régulierement de lui meme la
base de donnée mysql pour voir si il y a des taches à effectuer ?


C'est rare, en fait, les tâches à heures précises. Cf
http://faqfclphp.free.fr/#rub4.4

a++;
JG

Avatar
Mobilator
"loufoque" a écrit dans le message de
news: 422d5c46$0$16343$
Mobilator a dit le 08/03/2005 à 00:31:

1 : Quand le client se connecte au serveur php, et qu'il fait une
demande, le serveur ouvre une connection ftp vers un autre serveur et
envoye une requette.

Par contre, la réponse à la requette peut mettre 1mn à arriver et le
client peut ne plus être connecté à ce moment.


Comment ça le client peut ne plus être connecté ?
Je ne vois pas ce que tu veux dire par là.


Comment recevoir la réponse et la traiter ?


Bah si le client est parti, c'est pas vraiment la peine de lui donner la
réponse.



Il faut que je mette la réponse dans la base de donnée pour que le client
puisse l'avoir à sa prochaine connexion si il veux vérifier que tout s'est
bien passé.

Vous avez une idée de comment je pourrais faire pour attendre la réponse
même si mon client n'est plus connecté sur le site web ?

2 : Mes clients peuvent demander au serveur php de faire certaines taches
à des heures qu'ils determinent. Ces heures sont mises dans la base de
donnée. Comment mon serveur php peut il vérifier trés régulierement de
lui meme la base de donnée mysql pour voir si il y a des taches à
effectuer ?


Avec ce qu'on appelle un cron.
Utilitaire crontab sous linux, sinon il y a aussi le service webcron.org


Y a pas d'autres solutions ? Les gens peuvent programmer une commande a
n'importe quelle heure et j'aimerais que ce soit fait à la seconde pres....
et aprés une monté en charge, il peut y avoir des centaines de commandes
programmés par jouir.

Merci.


Avatar
mart.1
"Mobilator" wrote in message news:...
Bonjour à tous.

J'ai mon serveur qui doit faire 2 taches particulieres et je sais pas du
tout comment faire.

1 : Quand le client se connecte au serveur php, et qu'il fait une demande,
le serveur ouvre une connection ftp vers un autre serveur et envoye une
requette.

Par contre, la réponse à la requette peut mettre 1mn à arriver et le client
peut ne plus être connecté à ce moment. Comment recevoir la réponse et la
traiter ?


2 : Mes clients peuvent demander au serveur php de faire certaines taches à
des heures qu'ils determinent. Ces heures sont mises dans la base de donnée.
Comment mon serveur php peut il vérifier trés régulierement de lui meme la
base de donnée mysql pour voir si il y a des taches à effectuer ?

Merci à tous.



1 pb :
- mettre une durée d'expiration d'un flux avec lequel tu demande à un
autre script de faire le boulot
- faire un programme en prog. système, le mettre sur le serveur et le
faire lancer par php

2eme pb:
- faire un cron ou t'inscrire sur www.webcron.org
- te faire un script qui vérifie la BDD, puis :
- si il y a une tache, il la fait
- si non, il "sleep(29);"
puis il s'apelle lui meme à la fin de son execution =>
perpétuellement lancé.

Avatar
loufoque
Mobilator a dit le 08/03/2005 à 11:48:

Vous avez une idée de comment je pourrais faire pour attendre la réponse
même si mon client n'est plus connecté sur le site web ?


Oui, ignore_user_abort().


Y a pas d'autres solutions ?


Pas vraiment, à moins de recoder crontab.