Uyku zaman aşımı veya bunun gibi şeyler için sayılırsa, bu normal sorulardan biri değildir. Tamam, sorun şu: PHP için max_execution_time değerini 15 saniyeye ayarlıyorum ve ideal olarak bu ayarlanan limitin üstündeyken zaman aşımına uğruyor, ama değil. Apache, php.ini dosyasına yapılan değişiklikten sonra yeniden başlatıldı ve bir ini_get ('max_execution_time') tamamlandı. Bazen betik 200 saniyeye kadar çılgınca çalışır. Her hangi bir veritabanı iletişimim yok. Tüm betik, unix dosya sistemindeki dosyaları arıyor ve bazı durumlarda başka bir JSP sayfasına yönlendiriyor. Komutta hiç uyku yok(). Ben set senaryonun başlangıcındaPHP max_execution_time zaman aşımına uğramıyor
:
$_mtime = microtime();
$_mtime = explode(" ",$_mtime);
$_mtime = $_mtime[1] + $_mtime[0];
$_gStartTime = $_mtime;
ve bitiş zamanı ($ _ gEndTime) benzer şekilde hesaplanır
böyle PHP script toplam yürütme süresini hesaplamak.toplam sefer kaydettiğimizi bir kapatma fonksiyonu hesaplanır:
register_shutdown_function('shutdown');
.............
function shutdown()
{
..............
..............
$_total_time = $_gEndTime - $_gStartTime;
..............
switch (connection_status())
{
case CONNECTION_NORMAL:
....
break;
....
case CONNECTION_TIMEOUT:
....
break;
......
}
}
Not: Ben $ _SERVER kullanamazsınız [ 'REQUEST_TIME'] benim PHP sürümü uyumsuz olduğundan. Bu berbat - biliyorum.
1) Eh, benim ilk soru besbelli neden benim PHP komut dosyası bile ayarlanan zaman aşımı limitinden sonra infaz edilir?
2) Apache, 300 saniyelik zaman aşımı yönergesine sahiptir, ancak PHP ikili Apache yapılandırmasını okumaz ve bu bir sorun olmamalıdır.
3) PHP'nin bir uyku moduna girmesinin bir olasılığı var mı?
4) Uygulama zamanını yanlış olarak mı hesaplıyorum? Bunu yapmanın daha iyi bir yolu var mı?
Bu noktada stumped. PHP Sihirbazları - lütfen yardım edin.
Düzenleme: Sadece akım işlemlerinin birkaç günlükleri ile sebep olmadığını öğrendim. Aktarım işlemi yapılmadığında bile, gecikme komut dosyasında rastgele belirgindir. İçerik geçişi sadece sebebi olabilir. Ama hala net bir cevabım yok. Ben Real max_execution_time for PHP on linux yukarı baktım ama emin olmak istiyorum emin değilim. Başka önerileriniz var mı?
Dosya sistemi işlemlerinin de zaman sınırı hesaplamalarında sayılmadığına inanıyorum. – lonesomeday
Biliyorsunuz, 'float'ı hemen geri almak için' microtime (true) 'kullanabilirsiniz ... – deceze
@lonesomeday: Bundan emin misiniz? –