2011-05-11 18 views
5

Bir kod bloğu (sadece bir işlevi çağırmak) mümkün mü ve belirli bir süre içinde yürütmezse atla.Kod bloğu için bir zaman sınırı ayarlayabilir miyim?

//give this function 10 seconds to execute 
$value = mega_function();// could take anything from 1-1000 seconds 
//if 10 seconds have passed and the value is still not set, abort it and set $value = false; 

cevap

7

Hayır kıvrılmış veya file_get_contents() kullanarak ya

  • Çağrısı harici dosya içindeki işlevi olurdu - Orada

  • bir zaman aşımı ayarlamak içeride saati takip edin edebilirsiniz Gerekirse mega_function() ve return().

mega_function() ne yapar?

+0

mega işlevi, çeşitli metin bloklarını yorumlamaya çalışan bir programdır, bu nedenle daha hızlı sonuçlar elde etmek için, şimdilik daha fazla zamana ihtiyaç duyanları atlamak istiyoruz, sanırım kodları optimize etmem gerekiyor ve muhtemelen başka bir dil kullanmam gerekiyor php, ama evet, araçlarımı aldım – Moak

+1

Aslında bir harici program çağırırsa, zamanın kaydını tutabilir ve "mega_function()" – tobyodavies

+0

içinde harici işlemi öldürebilirsiniz. Ayrıca PHP'den bir işlem başlatabilir, PID ve relase'yi geri alabilirsiniz. kontrol. Ardından, bir dış komut dosyasından PID durumunu birkaç saniye kadar kontrol edin. –

0

parçacığı içine bakarak deneyin, ama PHP :) böyle bir şey yapmak zor olabilir

http://php.net/manual/en/function.pcntl-fork.php bak ve bitirmek için çocuk bekliyor, çocuk herkesin oluşturarak aralarında sinyalleri göndermek için tüm pnctl ilgili işlevleri veya dişleri öldürmek.

İlgili konular