[ Text ]

[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:

  1. if (is_callable('fastcgi_finish_request')) { 
  2.     // session_write_close(); 
  3.     fastcgi_finish_request(); 
  4. } 
  5. else { 
  6.     ob_start(); 
  7.     echo 'OK'; 
  8.     header('Connection: close'); 
  9.     header('Content-Length: ' . ob_get_length()); 
  10.     ob_end_flush(); 
  11.     ob_flush(); 
  12.     flush(); 
  13. } 

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.