Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menjalankan Operasi PHP Selepas Menghantar Respons HTTP?

Bagaimana untuk Menjalankan Operasi PHP Selepas Menghantar Respons HTTP?

Linda Hamilton
Linda Hamiltonasal
2024-11-17 11:17:02363semak imbas

How to Run PHP Operations After Sending an HTTP Response?

Melaksanakan Operasi PHP Post HTTP Penghantaran Response

Dalam PHP 5.2, apabila berjalan sebagai mod_php, menghantar respons HTTP boleh mengganggu pangkalan data yang berjalan lama permintaan dan pemprosesan e-mel. Untuk menangani isu ini, seseorang boleh menggunakan teknik yang membolehkan PHP menghantar respons HTTP yang lengkap kepada klien dan kemudian terus melaksanakan operasi untuk tempoh tambahan.

Coretan berikut menyelesaikannya:

ob_end_clean();
header("Connection: close");
ignore_user_abort(); // optional
ob_start();
echo ('Text the user will see');
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // Strange behaviour, will not work
flush();            // Unless both are called !
session_write_close(); // Added a line suggested in the comment
// Do processing here 
sleep(30);
echo('Text user will never see');

Setelah dilaksanakan, skrip segera menghantar respons HTTP lengkap kepada klien. Ia kemudiannya mula memproses permintaan pangkalan data dan e-mel di latar belakang, yang boleh mengambil masa sehingga satu minit. Harap maklum bahawa interaksi pengguna akan terputus sebaik sahaja respons dihantar.

Atas ialah kandungan terperinci Bagaimana untuk Menjalankan Operasi PHP Selepas Menghantar Respons HTTP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn