idea shell 中的函数 跳转_PHP如何为函数执行设置超时?
生活随笔
收集整理的這篇文章主要介紹了
idea shell 中的函数 跳转_PHP如何为函数执行设置超时?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(給PHP開發(fā)者加星標(biāo),提升PHP技能)
轉(zhuǎn)自:韓天峰
http://rango.swoole.com/archives/64
如何防止一個函數(shù)執(zhí)行時間過長呢?在PHP里可以用pcntl時鐘信號+異常來實現(xiàn)。
代碼如下:
<?php declare(ticks = 1);function a(){ sleep(10); echo "a finishi\n";}function b(){ echo "Stop\n";}function c(){ usleep(100000);}function sig(){ throw new Exception;}try{ pcntl_alarm(1); pcntl_signal(SIGALRM, "sig"); a(); pcntl_alarm(0);}catch(Exception $e){ echo "timeout\n";}b();a();b();原理是在函數(shù)執(zhí)行前先設(shè)定一個時鐘信號,如果函數(shù)的執(zhí)行超過規(guī)定時間,信號會被觸發(fā),信號處理函數(shù)會拋出一個異常,被外層代碼捕獲。這樣就跳出了原來函數(shù)的執(zhí)行,接著執(zhí)行下面的代碼。如果函數(shù)在規(guī)定的時間內(nèi),時鐘信號不會觸發(fā),在函數(shù)結(jié)束后清除時鐘信號,不會有異常拋出。
- EOF -
推薦閱讀??點擊標(biāo)題可跳轉(zhuǎn)1、用 PHP 實現(xiàn)多線程編程
2、也許這樣理解 HTTPS 更容易
3、PHP 8 性能怎么樣?
看完本文有收獲?請分享給更多人
關(guān)注「PHP開發(fā)者」加星標(biāo),提升PHP技能
點贊和在看就是最大的支持??
總結(jié)
以上是生活随笔為你收集整理的idea shell 中的函数 跳转_PHP如何为函数执行设置超时?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang适合做什么_什么八字适合做销
- 下一篇: canvas 红包雨_天猫双十一怎么买省