日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

PHP 函数 ignore_user_abort定时执行任务的实现

發布時間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP 函数 ignore_user_abort定时执行任务的实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ignore_user_abort 設置與客戶機斷開是否會終止腳本的執行。

  本函數返回 user-abort 設置的之前的值(一個布爾值)。


int ignore_user_abort ([ string $value ] )

  

參數描述
setting可選。如果設置為 true,則忽略與用戶的斷開,如果設置為 false,會導致腳本停止運行。
如果未設置該參數,會返回當前的設置。

 注釋:PHP 不會檢測到用戶是否已斷開連接,直到嘗試向客戶機發送信息為止。簡單地使用 echo 語句無法確保信息發送,參閱 flush() 函數。


?
1234567891011121314151617181920212223242526例-1 一個的ignore_user_abort()的例子,配合set_time_limit()函數 和一個死循環就可以實現計劃任務功能。  <?php  // Ignore user aborts and allow the script  // to run forever  ignore_user_abort (true);  set_time_limit (0);  echo 'Testing connection handling in PHP' ;  // Run a pointless loop that sometime  // hopefully will make us click away from  // page or click the "Stop" button.  while(1)  {  // Did the connection fail?  if( connection_status () != CONNECTION_NORMAL )  {  break;  }  // Sleep for 10 seconds  sleep (10);  }  // If this is reached, then the 'break'  // was triggered from inside the while loop  // So here we can log, or perform any other tasks  // we need without actually being dependent on the  // browser.  ?>

  

PHP內置函數研究系列第二期,采用PHP函數ignore_user_abort實現計劃任務與持續進程實例,并通過一個可檢測效果的實例討論ignore_user_abort()函數的作用與用法。

ignore_user_abort() 可以實現當客戶端關閉后仍然可以執行PHP代碼,可保持PHP進程一直在執行,可實現所謂的計劃任務功能與持續進程,只需要開啟執行腳本,除非 apache等服務器重啟或有腳本有輸出,該PHP腳本將一直處于執行的狀態,初看很實用,不過代價是一個PHP執行腳本的持續進程,開銷很大,但卻可以 實現很多意想不到的功 能。

其描述為設置與客戶機斷開是否會終止腳本的執行。


一,函數原型

?
1int ignore_user_abort ( [bool setting] )

  

二,版本兼容
PHP 3 >= 3.0.7, PHP 4, PHP 5

三,函數基礎用法與實例
1,函數基礎用法

?
123<?phpignore_user_abort();?>

說明:調用ignore_user_abort()函數聲明即使客戶機斷開不終止腳本的執行。


2,結合set_time_limit()函數實現一個循環腳本執行任務

?
12345678<?phpignore_user_abort();set_time_limit(0);$interval=60*15;do{//執行的業務}while(true);?>

 說明:每隔15分鐘循環執行


3,自定義實現文件輸出并跟蹤ignore_user_abort()函數的執行結果

?
123456789101112<?phpignore_user_abort ( TRUE );set_time_limit ( 0 );$interval = 10;$stop = 1;do {??? if( $stop == 10 ) break;??? file_put_contents('liuhui.php',' Current Time: '.time().' Stop: '.$stop);??? $stop++;??? sleep ( $interval );} while ( true );?>

打開liuhui.php文件,文件內容如下:

Current Time: 1273735029 Stop: 9

其原理是即使客戶端終止腳本,仍然每隔10秒鐘執行一次,并打印出當前時間與終止點,這樣就可以測試出ignore_user_abort()函數的具體效果。

通過實例發現ignore_user_abort()函數非常實用,實現計劃任務,完成后續任務,持續進程等非常有效。更多說明請參與PHP手冊。請關注下一期PHP內置函數研究系列。

?

轉自:http://www.cnblogs.com/wgw8299/articles/2170092.html

總結

以上是生活随笔為你收集整理的PHP 函数 ignore_user_abort定时执行任务的实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。