Maison > développement back-end > tutoriel php > Comment puis-je continuer l'exécution d'un script PHP après l'envoi d'une réponse HTTP ?

Comment puis-je continuer l'exécution d'un script PHP après l'envoi d'une réponse HTTP ?

DDD
Libérer: 2024-12-14 03:44:15
original
740 Les gens l'ont consulté

How Can I Continue PHP Script Execution After Sending an HTTP Response?

Poursuite de l'exécution de PHP après l'envoi de la réponse

Dans un scénario où un script PHP reçoit un message entrant, le traite et envoie une réponse à le serveur demandeur, il est nécessaire de poursuivre l'exécution du script PHP après l'envoi de la réponse initiale. Cela devient difficile car le serveur marque généralement le message comme livré lors de la réception d'une réponse HTTP 200.

Éviter le stockage de base de données et les tâches Cron

Au lieu de recourir au stockage des messages dans une base de données et en s'appuyant sur une tâche cron, il existe une solution plus immédiate. Cela implique l'envoi de la réponse HTTP 200, puis la poursuite de l'exécution du script PHP.

Implémentation du script PHP

Pour implémenter cette solution, suivez ces étapes dans votre script PHP :

ignore_user_abort(true); // Not required but can prevent premature termination
set_time_limit(0);

ob_start();
// Perform initial processing here
echo $response; // Send the response
header('Connection: close');
header('Content-Length: '.ob_get_length());
ob_end_flush();
@ob_flush();
flush();
fastcgi_finish_request(); // Required for PHP-FPM (PHP > 5.3.3)

// Continue script execution
// ...

die(); // End the script especially when set_time_limit=0 is used and the task is complete
Copier après la connexion

Cette séquence de code permet au script d'envoyer la réponse, mais le processus PHP continue de s'exécuter. Vous pouvez effectuer des traitements ou des tâches supplémentaires ou envoyer une autre réponse si nécessaire. Il est important d'appeler die() à la fin pour terminer le script et libérer des ressources.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal