亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP中使用sleep函數實現定時任務實例分享

2024-09-04 11:43:12
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP中使用sleep函數實現定時任務實例分享,本文給出了多個使用sleep的例子,本文還可以作為學習sleep函數的教程,需要的朋友可以參考下

在某些程序中,有一些特殊的功能需要用到定時執行,如果熟悉Linux的朋友肯定會說這不是容易嗎,直接來個計劃任務crontab不久實現了嗎?這的確是可以實現,但必須是提前知道具體的執行時間,然后才能寫到計劃任務里去。比如凌晨兩點,上午七點,或者每天上午六點三十分等等。

然而有時候,這個時間我們無法預知,而執行時間是程序動態生成的。然后在動態生成的時間后執行某些程序片段,這里就不能用Linux的crontab計劃任務了,因為每次執行的時間都是動態生成,而計劃任務需要知道一個定死了的時間。既然無法使用計劃任務,那么就只能從程序本身尋找實現方法。

在PHP中,有一個sleep函數,大概意思是程序執行遇到sleep函數時暫停N秒后繼續往下執行。如sleep(10)意思就是程序自上往下執行,遇到sleep(10)語句后暫停十秒,然后繼續往下執行。函數括號內的參數是一個數值,代表暫停時間值,單位秒。請看下面一段代碼

  1. <?php 
  2. /** 
  3.  * sleep函數的用法 
  4.  * 瓊臺博客 
  5.  */ 
  6. // 輸出當前程序時間戳 
  7. echo time(); // out:1338088780 
  8. echo '<br />'
  9.    
  10. // 暫停十秒 
  11. sleep(10); 
  12.    
  13. // 輸出時間戳 
  14. echo time(); // out:1338088790 

以上程序執行結果是:

1338088780

1338088790

我們來解析下執行過程,第一步是打印當前時間戳1338088780,然后暫停十秒,再打印時間戳。由于程序是等待了十秒然后再次打印時間戳,那么就是最后一次的時間戳肯定要比第一次打印的時間戳多十秒鐘,結果最后一次的時間戳是1338088790。

以上例子,我們只用了一次sleep函數,頁面中可以無限制使用sleep()函數。請看以下代碼:

  1. <?php 
  2. /** 
  3.  * sleep函數的用法 
  4.  * 瓊臺博客 
  5.  */ 
  6. // 輸出第一次時間戳 
  7. echo time();   // out: 1338088780 
  8. echo '<br />'
  9.    
  10. // 暫停十秒 
  11. sleep(10); 
  12.    
  13. // 輸出第二次時間戳 
  14. echo time();   // out: 1338088790 
  15. echo '<br />'
  16.    
  17. // 暫停二十秒鐘 
  18. sleep(20); 
  19.    
  20. // 輸出第三次時間戳 
  21. echo time();   // out: 1338088810 

以上程序執行結果是:

1338088780

1338088790

1338088810

以上代碼執行過程:

第一,打印第一次時間戳1338088780

第二,暫停十秒

第三,打印第二次時間戳 1338088790,是第一次時間戳加上十秒后的總和

第四,暫停二十秒

第五,打印第三次時間戳 1338088810,是第二次時間戳1338088790加上二十秒后的總和。

頁面中出現兩次sleep,第一次是十秒,第二次二十秒。由此得出以上實例總共執行三十秒。頁面中多次出現sleep()函數時為累加而不是覆蓋前面的代碼。

那如何結合sleep定時執行動態生成時間的代碼呢?請看以下代碼:

  1. <?php 
  2. /** 
  3.  * sleep函數定時執行動態生成時間段的代碼 
  4.  * 瓊臺博客 
  5.  */ 
  6. // 目前時間 
  7. echo date('Y-m-d H:i:s'); // out:2012-05-27 14:58:00 
  8. echo '<br />'
  9.    
  10. // 動態生成時間 范圍在今天下午六點到晚上零點前的任意時間 
  11. $datetime = date('Y-m-d').' '.rand('18,23').':'.rand('0,59').':'.rand('0,59'); // 2012-05-27 19:20:00 
  12.    
  13. // 算得時間戳 
  14. $a = strtotime($datetime); 
  15.    
  16. // 算得時間差 
  17. $reduce = $a-time(); 
  18.    
  19. // sleep等待 
  20. sleep($reduce); 
  21.    
  22. // 執行到時間后執行的代碼塊 
  23. echo date('Y-m-d H:i:s'); // out:2012-05-27 19:20:00 

以上代碼輸出:

2012-05-27 14:58:00

2012-05-27 19:20:00

解析:開始打印當前時間,然后隨機算出程序往后執行時間 2012-05-27 19:20:00,由于sleep接受參數是一個以秒為單位的一個數值,所以先把生成的時間轉換為時間戳然后再用時間戳減去當前時間戳得出一個時間差,再sleep即可達到程序在隨機生成時間執行某些語句達到定時執行效果。這里注意必須算的一個以秒為單位的時間差,如果不能算出秒差就沒法使用sleep函數功能。

最后,可能某些童鞋做實例的時候會說怎么我的程序執行出錯,提示超時。出現這個問題不要慌,這是PHP默認頁面執行時間導致的,在PHP中默認執行頁面時間是三十秒鐘,這對于一般程序夠用了。但如果你要做類似定時執行功能就必須再頭部聲明設置下執行時間set_time_limit(0)。0是代表不限時,單位是秒。最后整體貼出代碼:

  1. <?php 
  2. /** 
  3.  * sleep函數定時執行動態生成時間段的代碼 
  4.  * 瓊臺博客 
  5.  */ 
  6. // 設置頁面執行時間,否則會有超時錯誤提示 
  7. set_time_limit(0); 
  8.    
  9. // 目前時間 
  10. echo date('Y-m-d H:i:s'); // out:2012-05-27 14:58:00 
  11.    
  12. // 動態生成時間 范圍在今天下午六點到晚上零點前的任意時間 
  13. $datetime = date('Y-m-d').' '.rand('18,23').':'.rand('0,59').':'.rand('0,59'); // 2012-05-27 19:20:00 
  14.    
  15. // 算得時間戳 
  16. $a = strtotime($datetime); 
  17.    
  18. // 算得時間差 
  19. $reduce = $a-time(); 
  20.    
  21. // sleep等待 
  22. sleep($reduce); 
  23.    
  24. // 執行到時間后執行的代碼塊 
  25. echo date('Y-m-d H:i:s'); // out:2012-05-27 19:20:00 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线亚洲一区| 亚洲成人动漫在线播放| 日韩电影中文字幕一区| 中文字幕久热精品视频在线| 亚洲电影免费观看高清完整版在线观看| 亚洲综合在线中文字幕| 最近日韩中文字幕中文| 国产欧美久久久久久| 成人福利网站在线观看| 日韩高清电影免费观看完整版| 亚洲欧洲一区二区三区久久| 国产精品精品久久久| 欧美天堂在线观看| 久久综合伊人77777蜜臀| 日韩在线观看免费全集电视剧网站| 久久久久久久久电影| 一个人看的www久久| 欧美日韩午夜剧场| 色综久久综合桃花网| 狠狠色狠狠色综合日日小说| 亚洲欧美精品一区二区| 亚洲第一精品久久忘忧草社区| 国产一区私人高清影院| 亚洲国产欧美一区二区丝袜黑人| 亚洲人成啪啪网站| 亚洲国产精品久久久久久| 中文字幕在线精品| 欧美老女人www| 在线观看亚洲视频| 国产精品成人免费电影| 91国产美女视频| 国产热re99久久6国产精品| 欧美一级片一区| 日产精品99久久久久久| 午夜精品久久久久久99热软件| 欧美激情精品久久久久久蜜臀| 黑人巨大精品欧美一区二区一视频| 日本国产高清不卡| 91高潮精品免费porn| 久久精品美女视频网站| 性欧美暴力猛交69hd| 伊人久久精品视频| 亚洲精品视频网上网址在线观看| 欧美黄色片视频| 在线丨暗呦小u女国产精品| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲影院色在线观看免费| 色婷婷综合久久久久| 91精品国产91久久久久| 久久久久久久一区二区三区| 中文日韩在线视频| 91精品在线一区| 黑人狂躁日本妞一区二区三区| 琪琪亚洲精品午夜在线| 91精品视频大全| 亚洲无亚洲人成网站77777| 色999日韩欧美国产| 91国产视频在线| 久久精品国产综合| 中文字幕一区二区精品| 欧美高清视频在线观看| 亚洲最新av网址| 亚洲乱码一区二区| 久久久久久久久爱| 91国偷自产一区二区三区的观看方式| 91亚洲精品在线观看| 国产在线日韩在线| 久久中文字幕国产| 日韩精品视频中文在线观看| 久久久精品在线观看| 亚洲a级在线播放观看| 日韩av在线免费看| 欧美极品少妇xxxxⅹ喷水| 亚洲精品成人久久电影| 亚洲精品视频在线观看视频| 日韩中文综合网| 国产狼人综合免费视频| 国产精品久久久久久久av电影| 日韩精品免费在线视频观看| 亚洲成人黄色网| 欧美亚洲视频在线看网址| 精品一区二区三区四区| 日韩欧美国产高清91| 久久综合国产精品台湾中文娱乐网| 欧美一级片久久久久久久| 91av视频在线播放| 久久中文久久字幕| 欧美性精品220| 国产精品视频网址| 麻豆成人在线看| 国产成人一区二区三区| 日韩第一页在线| 中文字幕亚洲无线码a| 亚洲激情电影中文字幕| 欧美成aaa人片免费看| 亚洲一区免费网站| 欧美在线视频观看免费网站| 97久久精品人搡人人玩| 久久久久久久91| 上原亚衣av一区二区三区| 在线观看国产成人av片| 国内免费精品永久在线视频| 亚洲香蕉av在线一区二区三区| 久久久久久久一区二区三区| 国产成人精品视频在线观看| 992tv在线成人免费观看| 色综合影院在线| 欧美激情国产日韩精品一区18| 国产一区深夜福利| 久久久国产在线视频| 久久999免费视频| 日韩欧美国产激情| xxx成人少妇69| 亚洲无亚洲人成网站77777| 中文字幕精品影院| 国产成人精品视| 欧美乱妇高清无乱码| 亚洲色图13p| 亚洲午夜久久久久久久| 国产免费一区二区三区在线观看| 久热在线中文字幕色999舞| 久久国产天堂福利天堂| 欧美激情亚洲视频| 国产精品久久久久久久久男| 精品动漫一区二区| 日韩视频中文字幕| 欧美性少妇18aaaa视频| 欧美成人免费大片| 成人福利网站在线观看| 国产欧美一区二区三区在线看| 国产成人拍精品视频午夜网站| 国产精品美女在线观看| 久久久久久九九九| 欧美中文字幕第一页| 国产91在线高潮白浆在线观看| 亚洲自拍偷拍区| 国产综合久久久久久| 国产精品美女久久久久久免费| 91亚洲va在线va天堂va国| 亚洲精品大尺度| 欧美激情一区二区久久久| 日韩在线资源网| 在线电影中文日韩| 国产成人一区二区| 色婷婷综合久久久久| 亚洲一区二区三区香蕉| 欧美性xxxxxxxxx| 成人激情综合网| 亚洲午夜未删减在线观看| 美女扒开尿口让男人操亚洲视频网站| 国产精品一二区| 蜜臀久久99精品久久久久久宅男| 国产精品久久久久久久久久小说| 日韩在线视频中文字幕| 亚洲成人a级网| 日韩成人激情视频| 久久男人资源视频| 欧美亚洲午夜视频在线观看| 久久久久久高潮国产精品视| 91av网站在线播放| 视频在线观看99| 日韩在线免费观看视频| 中文字幕亚洲综合久久| 亚洲国产免费av|