Fermer la connexion et poursuivre le traitement

11 réponses
AuteurMessage

Rano |
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 19/10/2010 à 12:48

Salut,

Je cherche une solution permettant de faire la chose suivante en PHP (en gros) :


<?php
header('Content-Type: image/gif');
readfile('monimage.gif');
// Là une fonction qui permettrait de dire à apache : tu envoies le contenu (à la flush) et tu fermes la connexion car après il n'y a plus de données à envoyer

// Et la mon contenu qui prend un peu de temps, mais c'est pas grave car on a envoyé les données et la connexion est fermé donc on ne ralenti pas l'affichage du visiteur
sleep(10);
?>


Dans cet exemple, l'image met 10 secondes à s'afficher. Il y a une fonction miracle à placer au milieu pour qu'elle s'affiche immédiatement malgré un traitement "long" après ?

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 19/10/2010 à 13:39

Tu peux lancer un truc en passthru("/mon/script/a/lancer.php &"); qui va se lancer en fond et rendre tout de suite la main.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

cerise | Gaël
Modérateur

Photo de cerise

Inscrit le : 31/10/2008

# Le 19/10/2010 à 14:04

Kru, tu veux dire que le script lancé avec passthru s'execute en tache de fond sans bloquer l'exécution de ce qui le suit ?

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 19/10/2010 à 14:06

Oui, si il y a le "&" a la fin de la ligne de commande.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Rano | Jean
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 19/10/2010 à 14:07

Oui éventuellement, pourquoi pas. Mais c'est dommage de devoir séparer le code comme ça

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

cerise | Gaël
Modérateur

Photo de cerise

Inscrit le : 31/10/2008

# Le 19/10/2010 à 14:08

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 19/10/2010 à 14:10

Rano a dit :
Oui éventuellement, pourquoi pas. Mais c'est dommage de devoir séparer le code comme ça


Si tu trouves mieux, je suis preneur, c'est ce que j'utilisais pour ma part sur vacanceo.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

MathieuC | Mathieu
Modérateur

Photo de MathieuC

Inscrit le : 15/07/2005

# Le 19/10/2010 à 14:12

Je cherche a resoudre la meme problematique pour notre AdServer depuis quelques semaines sans succès

La solution de JC est pas mal, mais elle a le desavantage de creer un process separé, operation lourde pour le serveur quand on parle de milliers de requetes par seconde

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 19/10/2010 à 14:18

Pour la gestion de type adserver, j'envoie le tag du visiteur + un pixel transparent en javascript (qui elimine la plupart des bots) et qui fait le traitement (log, stat, ...)
Ca fait 2 hits apache, mais cela ne ralentit pas l'affichage public

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 19/10/2010 à 14:23

Et en plus, pour un adserver, ca permet d'éliminer les bots et ne compter que les affichages reellement vus. Pas mal.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

MathieuC | Mathieu
Modérateur

Photo de MathieuC

Inscrit le : 15/07/2005

# Le 19/10/2010 à 14:39

Oui, effectivement c'est pas mal, mais j'essaye de minimiser le nombre de hits pour pas devoir rajouter encore des serveurs supplémentaires

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 19/10/2010 à 15:10

il y a fastcgi_finish_request()Ouvrir dans une nouvelle fenetre , si tu utilises FPM.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 19:47:35 | Généré en 7.21ms | Contacts | Mentions légales |