一個腳本可以一直運行 ignore_user_abort


php中ignore_user_abort函數的用法

 

 

PHP中的ignore_user_abort函數是當用戶關掉終端后腳本不停止仍然在執行,可以用它來實現計划任務與持續進程,下面會通過實例討論ignore_user_abort()函數的作用與用法。
    
    ignore_user_abort() 可以實現當客戶端關閉后仍然可以執行PHP代碼,可保持PHP進程一直在執行,可實現所謂的計划任務功能與持續進程,只需要開啟執行腳本,除非 apache等服務器重啟或有腳本有輸出,該PHP腳本將一直處於執行的狀態,初看很實用,不過代價是一個PHP執行腳本的持續進程,開銷很大,但卻可以實現很多意想不到的功 能。
    
    其描述為設置與客戶機斷開是否會終止腳本的執行。
    
    一,函數原型
    
    int ignore_user_abort ( [bool setting] )
    
    二,版本兼容
    
    PHP 3 >= 3.0.7, PHP 4, PHP 5
    
    三,函數基礎用法與實例
    
    1,函數基礎用法
    
    1. <?php
    
    2. ignore_user_abort();
    
    3. ?>
    
    說明:調用ignore_user_abort()函數聲明即使客戶機斷開不終止腳本的執行。
    
    2,結合set_time_limit()函數實現一個循環腳本執行任務
    
    1. <?php
    
    2. ignore_user_abort();
    
    3. set_time_limit(0);
    
    4. $interval=60*15;
    
    5. do{
    
    6. //執行的業務
    
    7. }while(true);
    
    8. ?>
    
    說明:每隔15分鍾循環執行
    
    3,自定義實現文件輸出並跟蹤ignore_user_abort()函數的執行結果
    
    1. <?php
    
    2. ignore_user_abort ( TRUE );
    
    3. set_time_limit ( 0 );
    
    4. $interval = 10;
    
    5. $stop = 1;
    
    6. do {
    
    7. if( $stop == 10 ) break;
    
    8. file_put_contents(‘phpzixue.php',' Current Time: '.time()。' Stop: '.$stop);
    
    9. $stop++;
    
    10. sleep ( $interval );
    
    11. } while ( true );
    
    12. ?>
    
    打開liuhui.php文件,文件內容如下:
    
    Current Time: 1273735029 Stop: 9
    
    其原理是即使客戶端終止腳本,仍然每隔10秒鍾執行一次,並打印出當前時間與終止點,這樣就可以測試出ignore_user_abort()函數的具體效果。
    
    通過實例發現ignore_user_abort()函數非常實用,實現計划任務,完成后續任務,持續進程等非常有效。

更多內容請關注 http://www.cnblogs.com/fukajg/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM