Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Skrip pengguna foreach PHP tampaknya membuat Apache hang

Perilaku ini terdengar seperti penguncian sesi. Cara kerja sesi PHP default adalah mengunci sesi (untuk mencegah dua proses menulis ke objek sesi). Ini biasanya baik untuk skrip PHP yang berumur pendek, tetapi dapat mengganggu Anda ketika Anda memiliki sesuatu yang berjalan lama.

Jika aplikasi Anda tidak menggunakan sesi sama sekali, maka Anda harus mematikan session.auto_start di php.ini atau .htaccess:http ://www.php.net/manual/en/session.configuration.php#ini.session.auto-start (Jika Anda tidak melihatnya di sana, atau sudah mati, tetapi Anda menggunakan semacam kerangka kerja, kerangka kerja mungkin memulai sesi untuk Anda; jika demikian, lebih mudah untuk pergi ke solusi berikutnya daripada mencoba melawan kerangka kerja.)

Jika Anda menggunakan sesi pada beberapa halaman, tetapi tidak pada proses yang berjalan lama ini, solusinya adalah menutup sesi di awal skrip Anda, dengan session_write_close() :

<?
set_time_limit(0);

require '../connect.php';
require '../includes/ses.php';

session_write_close();

$i = 1;
....

Sekali lagi, peringatan kerangka kerja:jika kerangka kerja memulai sesi untuk Anda, masukkan session_write_close(); setelah menyertakan file kerangka kerja, bukan sebelumnya! (Anda menyebutkan bahwa itulah yang terjadi dalam komentar Anda, itulah sebabnya saya meletakkannya setelah baris yang diperlukan.)

Jika proses lama Anda perlu menggunakan sesi, tetapi hanya-baca, hal di atas masih berfungsi. Lihat https://stackoverflow.com/a/14409902/841830 (Seperti yang ditunjukkan oleh jawaban itu, jika Anda perlu menulis ke sesi di akhir proses yang berjalan lama, itu juga mungkin.)

(P.S. Ini sudah dijawab di komentar, tetapi saya telah menerima tawaran Wrikken untuk mempostingnya sebagai jawaban. Ya, rumor itu benar:Saya akan melakukan apa saja untuk beberapa rep...)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mendapatkan KESALAHAN:Perintah salah dengan status keluar 1:saat mencoba menginstal mysql

  2. Bagaimana saya bisa mengatur banyak tabel mysql?

  3. LAST_INSERT_ID() tidak sama dengan $db->insert_id?

  4. Bantuan api terbuka. Basis data khusus (tabel, bidang)

  5. Bagaimana saya bisa menggabungkan dua string angka yang dipisahkan koma di MySQL?