国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

關(guān)于“數(shù)據(jù)或者資源可以全局共享”

karllu

workerman的優(yōu)點(diǎn)中有一條“數(shù)據(jù)或者資源可以全局共享”,請問怎么實(shí)現(xiàn)?我想在Event.php中用mysql_connect()創(chuàng)建一個(gè)數(shù)據(jù)連接$db_conn,然后后面有新的連接進(jìn)來時(shí),可以不用再次連接,如何做?是否用一個(gè)在Event 或者Gateway class中聲明一個(gè)static $db_conn = null,然后做一個(gè)初始化就行了?

5480 5 1
5個(gè)回答

walkor 打賞

可以寫一個(gè)數(shù)據(jù)庫的類,然后使用單例模式,類似下面這樣

class DB
{
    static $dbConn = null;
    public static function instance()
    {
        if(!self::$dbConn)
        {
            self::$dbConn = new PDO(xxxx);
        }
    }
}

數(shù)據(jù)庫資源全局共享時(shí)有一點(diǎn)需要注意,當(dāng)這個(gè)共享的數(shù)據(jù)庫鏈接長時(shí)間沒有任何操作時(shí)可能會被mysql服務(wù)端關(guān)閉鏈接,被mysql服務(wù)端關(guān)閉鏈接后的數(shù)據(jù)庫資源再次被使用的時(shí)候會報(bào)mysql gone away 錯(cuò)誤,使用時(shí)如果遇到這種錯(cuò)誤(錯(cuò)誤碼為2006)重連即可

  • 暫無評論
ayamzh

那是不是我使用MYSQL_PCONNECT 可以避免這種斷開連接后的判斷了。每次用戶名密碼一樣用相同的句柄鏈接?

  • 暫無評論
walkor 打賞

如果用持久的mysql資源,都會有服務(wù)端關(guān)閉不活躍鏈接的問題,都需要判斷。

對性能要求不高的應(yīng)用可以不使用持久資源。每次使用數(shù)據(jù)庫重新創(chuàng)建一個(gè)鏈接

  • 暫無評論
ayamzh

學(xué)習(xí)了。那redis用單例模式加載的話 會不會也存在myql gone away需要重連這類似問題。

  • 暫無評論
walkor 打賞

redis底層會自動重連,但是按照經(jīng)驗(yàn)來看,redis擴(kuò)展底層的重連并十分不可靠,還是有連不上的狀況。最好是在底層判斷下異常,然后重連重試一次。

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??