Continuer le traitement de php après avoir envoyé la réponse http
P粉029327711
P粉029327711 2023-08-27 20:36:33
0
1
611
<p>Mon script est appelé par le serveur. Je recevrai le <code>ID_OF_MESSAGE</code> et le <code>TEXT_OF_MESSAGE</code> </p> <p>Dans mon script, je traiterai le texte entrant et générerai une réponse en utilisant les paramètres : <code>ANSWER_TO_ID</code> et <code>RESPONSE_MESSAGE</code>. </p> <p>Le problème est que j'envoie une réponse au <code>"ID_OF_MESSAGE"</code> entrant, mais le serveur qui m'envoie le message à traiter configure son message pour qu'il me soit livré (ce qui signifie Je peux donc envoyer sa réponse à cet identifiant) après avoir reçu la réponse http 200. </p> <p>Une solution consiste à enregistrer le message dans une base de données et à créer un cron qui s'exécute toutes les minutes, mais j'ai besoin que le message de réponse soit généré immédiatement. </p> <p>Existe-t-il une solution pour envoyer au serveur la réponse http 200 et continuer à exécuter le script php ? </p> <p>Merci beaucoup</p>
P粉029327711
P粉029327711

répondre à tous(1)
P粉351138462

Oui. Vous pouvez faire ceci :

ignore_user_abort(true);//not required
set_time_limit(0);

ob_start();
// do 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)

// now the request is sent to the browser, but the script is still running
// so, you can continue...

die(); //a must especially if set_time_limit=0 is used and the task ends
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!