Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Meneruskan Pelaksanaan Skrip PHP Selepas Menghantar Respons HTTP?

Bagaimanakah Saya Boleh Meneruskan Pelaksanaan Skrip PHP Selepas Menghantar Respons HTTP?

DDD
Lepaskan: 2024-12-14 03:44:15
asal
740 orang telah melayarinya

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

Teruskan Pelaksanaan PHP Selepas Menghantar Respons

Dalam senario di mana skrip PHP menerima mesej masuk, memprosesnya dan menghantar respons kepada pelayan yang meminta, terdapat keperluan untuk meneruskan pelaksanaan skrip PHP selepas menghantar respons awal. Ini menjadi mencabar kerana pelayan biasanya menandakan mesej sebagai dihantar apabila menerima respons HTTP 200.

Mengelakkan Penyimpanan Pangkalan Data dan Pekerjaan Cron

Daripada menggunakan menyimpan mesej dalam pangkalan data dan bergantung pada kerja cron, terdapat penyelesaian yang lebih segera. Ini melibatkan penghantaran respons HTTP 200 dan kemudian meneruskan pelaksanaan skrip PHP.

Pelaksanaan Skrip PHP

Untuk melaksanakan penyelesaian ini, ikut langkah ini dalam skrip PHP anda:

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
Salin selepas log masuk

Jujukan kod ini membenarkan skrip menghantar respons, tetapi proses PHP terus berjalan. Anda boleh melakukan pemprosesan tambahan, tugasan atau menghantar respons lain jika perlu. Adalah penting untuk memanggil die() pada penghujungnya untuk menamatkan skrip dan membebaskan sumber.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meneruskan Pelaksanaan Skrip PHP Selepas Menghantar Respons HTTP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan