Teruskan Pemprosesan PHP Selepas Respons
Apabila mengendalikan permintaan yang memerlukan respons segera, mungkin perlu meneruskan pemprosesan PHP selepas menghantar respons awal kepada pelanggan.
Skrip anda menerima parameter daripada pelayan, menjana respons dan perlu menghalang pelayan daripada menganggap mesej sebagai dihantar sebelum ia boleh meneruskan pemprosesan. Walaupun menyimpan mesej dalam pangkalan data dan menggunakan tugas cron boleh menjadi penyelesaian, ia tidak sesuai untuk respons masa nyata.
Untuk menyelesaikan isu ini, anda boleh menggunakan fungsi PHP berikut:
ignore_user_abort(true); // Not required but recommended set_time_limit(0); // No time limit ob_start(); // Handle the request and generate the response 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 // Continue PHP processing after the response has been sent die(); // **Important** to ensure cleanup if set_time_limit(0) is used
Dengan menggunakan fungsi ini, anda boleh menghantar respons kepada klien, menutup sambungan dan terus melaksanakan skrip PHP anda tanpa diganggu. Ini membenarkan respons segera sambil masih mendayakan pemprosesan tak segerak bagi mesej.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meneruskan Pemprosesan PHP Selepas Menghantar Jawapan kepada Pelanggan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!