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

動態(tài)循環(huán)鏈接多個數(shù)據(jù)庫

fantasmic

問題描述

公司現(xiàn)有推廣站100+(持續(xù)增加中),每個站后臺都有文章功能,每次發(fā)文章會打包幾千個txt上傳然后解壓讀每個txt把內(nèi)容存進數(shù)據(jù)庫。

現(xiàn)在運營覺得每個站都要登上去操作不方便,想有一個總后臺能對每個站發(fā)文章。

我想的是做成定時任務,先把推廣站的數(shù)據(jù)庫信息都存起來,在發(fā)布平臺選站點并傳文章,循環(huán)拿到站點數(shù)據(jù)庫信息連接上后把文章內(nèi)容寫進去,功能感覺很簡單,這樣循環(huán)連接數(shù)據(jù)庫有坑嗎


7月7號:
功能現(xiàn)在全部做完了,由于測試時只循環(huán)測了3個庫且連接正常就以為上線也行。
上線后站很多一下加了70多個站,但數(shù)據(jù)庫其實只有2個只是庫名不一樣,運營一次性要對20個站上傳文章,且是同一個庫,我這就要循環(huán)20次檢測連接代碼是這樣的

public static function testConnection(SiteInfo $site): bool
    {
        $connection = null;
        try {
            $pdo = new PDO(
                "mysql:host={$site->db_host};port={$site->port}",
                $site->db_username,
                $site->db_password,
                [
                    PDO::ATTR_PERSISTENT => false, // 禁用持久連接
                    // 添加TCP keepalive選項
                    PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
                    PDO::ATTR_TIMEOUT => 2,
                    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
                ]
            );

            $connection = new MySqlConnection($pdo);
//            $connection->select('SELECT 1');

            return true;
        } catch (\Exception $e) {
            Log::channel('conn')->error($e->getMessage());
            return false;
        } finally {
            // 釋放連接資源
            if ($connection instanceof Connection) {
                $connection->disconnect();
            }
        }
    }

我的理解是即使是循環(huán)也是連上了就釋放,下一個繼續(xù),不存在占用連接數(shù),但實際上在循環(huán)大概10多次后就報Connection timed out,難道釋放連接不是馬上的?

571 4 0
4個回答

北月妖王

能跑就行。

如果只是針對發(fā)文章不想切換站點重復登錄這個問題,你不如搞一個 webview 套殼的客戶端,在服務端開個專用 API,授權驗證用專門的 ApiKeyAppSecret,一次配置終生使用,體驗不是更好嗎

  • 暫無評論
vs7717

你單獨開一個fpm 的程序,主要是把你那些數(shù)據(jù)庫配置集中寫,然后專門寫一個發(fā)布文章的功能,webman 這邊的程序,每次調(diào)用這個fpm 的程序,用來循環(huán)數(shù)據(jù)庫插入
或者,你把數(shù)據(jù)庫配置什么寫到webman 這邊數(shù)據(jù)庫里,然后每個數(shù)據(jù)庫信息對應標識,然后每次去調(diào)用fpm 的時候 把數(shù)據(jù)信息傳遞獲取,那邊根據(jù)你傳遞的數(shù)據(jù)庫信息進行連接

  • 暫無評論
fantasmic

頂一下

晚安。
/**
 * 動態(tài)連接數(shù)據(jù)庫--備份
 * @param string $name 數(shù)據(jù)庫連接名字
 * @param array $newDbConfig 需要連接的新數(shù)據(jù)庫配置
 */
function baseDb($name, $newDbConfig)
{
    try {
        $con = Db::connect($name);
    } catch (InvalidArgumentException $e) {
        $config                       = Db::getConfig();
        $config['connections'][$name] = $newDbConfig;
        Db::setConfig($config);
        $con = Db::connect($name);
    }
    return $con;
}

你吧數(shù)據(jù)庫配置信息都存儲到數(shù)據(jù)庫一個表里面,調(diào)用這個方法執(zhí)行就可以了

  • 暫無評論
??