[ Normal ]

[Snippet] PHP Menghentikan Request Tetapi Proses Masih Berjalan?

Saat menggunakan layanan cron gratis dari pihak ketiga (cron-job.org), saya mengalami kendala bahwa ternyata batas timeout yang diijinkan sangat kecil. Untuk itu cara mengatasinya adalah dengan menutup koneksi browser sebelum kode utama dijalankan.

Berikut snippetnya:
if (is_callable('fastcgi_finish_request')) {
    // session_write_close();
    fastcgi_finish_request();
}
else {
    ob_start();
    echo 'OK';
    header('Connection: close');
    header('Content-Length: ' . ob_get_length());
    ob_end_flush();
    ob_flush();
    flush();
}


Letakkan kode tersebut paling atas atau sebelum kode utama. Proses kode utama akan tetap berjalan di background / server hingga selesai. Meskipun browser sudah berhenti memuat karena koneksi telah ditutup.

Ini akan berguna jika kode utama lumayan membutuhkan waktu, seperti curl, query yang lambat, dsb.