Pemprosesan Latar Belakang dalam PHP
Apabila skrip PHP melebihi had masa pelaksanaan pelayan (biasanya 30 saat), ia akan ditamatkan secara tiba-tiba, meninggalkan pengguna dengan tugas yang belum selesai. Untuk menangani had ini, pembangun mencari kaedah untuk melaksanakan proses yang berjalan lama di latar belakang, membolehkan mereka memulakan proses dan mendapatkan semula hasilnya kemudian.
Penyelesaian: Gunakan ignore_user_abort dan set_time_limit
Untuk melaksanakan pemprosesan latar belakang, PHP menyediakan dua fungsi penting: ignore_user_abort dan set_time_limit. ignore_user_abort mengarahkan pelayan untuk terus melaksanakan skrip walaupun pengguna meninggalkan halaman atau menutup penyemak imbas. set_time_limit menetapkan masa pelaksanaan skrip maksimum, memastikan proses mempunyai masa yang mencukupi untuk diselesaikan.
Sampel Pelaksanaan
<code class="php">ignore_user_abort(true); set_time_limit(0); // Start the long-running process here</code>
Awas
Adalah penting untuk ambil perhatian bahawa menggunakan ignore_user_abort dan set_time_limit menjadikannya mustahil untuk menamatkan skrip dari jauh. Jika gelung tidak berkesudahan atau ralat berlaku, pelayan mungkin mengalami kehabisan sumber sehingga proses selesai atau pelayan but semula secara manual. Oleh itu, adalah penting untuk memastikan skrip direka bentuk dengan perlindungan untuk mengelakkan situasi sedemikian.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Proses PHP Berjangka Lama di Latar Belakang dengan `ignore_user_abort` dan `set_time_limit`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!