需要用到sleep函數(shù)定時(shí)從數(shù)據(jù)庫(kù)取一堆數(shù)據(jù)出來(lái)去執(zhí)行某些操作。
sleep等待的時(shí)間至少有一個(gè)小時(shí)以上
此前做過(guò)測(cè)試
用sleep函數(shù)去完成數(shù)小時(shí)后執(zhí)行的操作是可行的

可邪門(mén)的問(wèn)題出來(lái)了
程序用sleep " /> 精品国产一区二区亚洲人成毛片,亚洲人成网站免费播放,亚洲一区资源

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP中使用sleep造成mysql讀取失敗的案例和解決方法

近日,由于項(xiàng)目需求
需要用到sleep函數(shù)定時(shí)從數(shù)據(jù)庫(kù)取一堆數(shù)據(jù)出來(lái)去執(zhí)行某些操作。
sleep等待的時(shí)間至少有一個(gè)小時(shí)以上
此前做過(guò)測(cè)試
用sleep函數(shù)去完成數(shù)小時(shí)后執(zhí)行的操作是可行的
 
可邪門(mén)的問(wèn)題出來(lái)了
程序用sleep后發(fā)現(xiàn)不能從數(shù)據(jù)庫(kù)取到相應(yīng)的信息
把sleep去掉
結(jié)果正常
 
郁悶中。。。
難道sleep影響讀庫(kù)操作!!!
于是為了方便測(cè)試
直接來(lái)個(gè)sleep(10) 十秒后執(zhí)行
結(jié)果能從數(shù)據(jù)庫(kù)讀取信息
 
可為什么sleep()一個(gè)小時(shí)后不能讀取信息呢?
為了測(cè)試方便我直接在sleep語(yǔ)句前讀庫(kù)一次,sleep后再讀一次庫(kù)
如:
復(fù)制代碼 代碼如下:
<?php
require_once('include.php');
// 讀取數(shù)據(jù)庫(kù)信息
$data = $db->getList();
print_r($data);
 
// 定時(shí)一個(gè)小時(shí)以后
sleep(3600);
 
// 再讀取一次信息
$data = $db->getList();
print_r($data);
 
?>
結(jié)果發(fā)現(xiàn)
第一次讀庫(kù)成功
第二次讀庫(kù)為空
 
于是再把sleep改成十秒鐘后再測(cè)試一次
復(fù)制代碼 代碼如下:
<?php
require_once('include.php');
// 讀取數(shù)據(jù)庫(kù)信息
$data = $db->getList();
print_r($data);
 
// 定時(shí)十秒以后
sleep(10);
 
// 再讀取一次信息
$data = $db->getList();
print_r($data);
 
?>

以上結(jié)果
兩次讀庫(kù)成功
 
為何一個(gè)小時(shí)讀庫(kù)失敗,十秒鐘卻讀庫(kù)成功呢??
我用的是單例數(shù)據(jù)庫(kù)操作類
想起一個(gè)問(wèn)題
會(huì)不會(huì)是數(shù)據(jù)庫(kù)連接超時(shí)導(dǎo)致讀庫(kù)失敗呢?
于是趕緊把此處讀庫(kù)操作改成現(xiàn)連
復(fù)制代碼 代碼如下:
<?php
require_once('include.php');
// 讀取數(shù)據(jù)庫(kù)信息
$data = getList();
print_r($data);
 
// 定時(shí)一個(gè)小時(shí)以后
sleep(3600);
 
// 再讀取一次信息
$data = getList();
print_r($data);
 
// 讀取數(shù)據(jù)庫(kù)信息
function getList(){
        $pdo = new PDO('mysql:host=localhost;dbname=test','root','root');
        $result = $pdo->query('select * from tables');
        return $result->fetchAll(PDO::FETCH_ASSOC);
}
?>
測(cè)試成功!!
原來(lái)sleep會(huì)導(dǎo)致單例類超時(shí)問(wèn)題從而出現(xiàn)執(zhí)行時(shí)間過(guò)長(zhǎng)以后數(shù)據(jù)庫(kù)連接可能斷開(kāi)問(wèn)題,也就不能讀到數(shù)據(jù)庫(kù)信息!

php技術(shù)PHP中使用sleep造成mysql讀取失敗的案例和解決方法,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 昭平县| 休宁县| 武城县| 班玛县| 沙坪坝区| 临海市| 红河县| 乌鲁木齐市| 宁武县| 卢湾区| 曲松县| 广宁县| 正镶白旗| 渑池县| 运城市| 昌江| 富源县| 常山县| 高密市| 吴忠市| 阿瓦提县| 民和| 大同县| 乌拉特前旗| 吴江市| 象州县| 龙游县| 子洲县| 德令哈市| 古蔺县| 甘孜| 元阳县| 安阳市| 建平县| 伊宁市| 柞水县| 阿拉善左旗| 阿巴嘎旗| 思茅市| 永安市| 勐海县|