Teruskan memproses php selepas menghantar respons http
P粉029327711
P粉029327711 2023-08-27 20:36:33
0
1
665
<p>Skrip saya dipanggil oleh pelayan. Saya akan menerima <kod>ID_OF_MESSAGE</kod> dan <kod>TEXT_OF_MESSAGE</kod> </p> <p>Dalam skrip saya, saya akan memproses teks masuk dan menjana respons menggunakan parameter: <kod>JAWAPAN_TO_ID</kod> dan <kod>RESPONSE_MESSAGE</kod>. </p> <p>Masalahnya ialah saya menghantar respons kepada <kod>"ID_OF_MESSAGE"</code> yang masuk, tetapi pelayan yang menghantar mesej kepada saya untuk pemprosesan menetapkan mesejnya untuk dihantar kepada saya (yang bermaksud Jadi saya boleh menghantar responsnya kepada ID itu) selepas menerima respons http 200. </p> <p>Satu penyelesaian ialah menyimpan mesej ke pangkalan data dan mencipta beberapa cron yang berjalan setiap minit, tetapi saya memerlukan mesej respons dijana dengan segera. </p> <p>Adakah terdapat beberapa penyelesaian bagaimana untuk menghantar ke pelayan http respon 200 dan terus melaksanakan skrip php? </p> <p>Terima kasih banyak</p>
P粉029327711
P粉029327711

membalas semua(1)
P粉351138462

Ya. Anda boleh melakukan ini:

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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan