Je voudrais être en mesure de permettre à un utilisateur d'afficher la sortie d'un script GCI de longue durée au moment où il est généré plutôt qu'après la fin du script. Cependant, même lorsque je vide explicitement STDOUT, le serveur semble attendre que le script se termine avant d'envoyer la réponse au client. C'est sur un serveur Linux exécutant Apache 2.2.9.Comment puis-je utiliser du contenu CGI non tamponné à partir d'Apache 2?
Exemple python CGI:
#!/usr/bin/python
import time
import sys
print "Content-type: text/plain"
print
for i in range(1, 10):
print i
sys.stdout.flush()
time.sleep(1)
print "Done."
exemple similaire en Perl:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
for ($i = 1; $i <= 10 ; $i++) {
print "$i\n";
sleep(1);
}
print "Done.";
Ce lien indique que la production Apache 1.3 CGI devrait être unbuffered (mais cela pourrait appliquer seulement pour Apache 1.x): http://httpd.apache.org/docs/1.3/misc/FAQ-F.html#nph-scripts
Des idées?
Vous pouvez être potentiellement en cours d'exécution dans le client (navigateur) les problèmes de mise en mémoire tampon -SIDE. – Miles