Maison > cadre php > Workerman > le corps du texte

Comment résoudre le problème d'erreur de workerman+tp5

藏色散人
Libérer: 2021-02-01 12:06:20
original
3289 Les gens l'ont consulté

Comment résoudre le problème d'erreur de workerman+tp5

Comment résoudre le problème d'erreur de workererman+tp5 ? Problème de rapport d'erreurs thinkphp5+workerman

Dans la première version de thinkphp5.0. La raison en est que la base de données est déconnectée en raison d'une connexion à long terme à la base de données.

Recommandé : "Tutoriel Workerman"

Solution :

1. Modifier la base de données Configurer. le fichier database.php et définissez le paramètre break_reconnect sur true. Déconnectez et reconnectez.

// 是否需要断线重连
'break_reconnect' => true,
Copier après la connexion

2. Modifiez la fonction isBreak dans /library/think/db/Connection.php et remplacez-la par la dernière fonction isBreak ci-dessous.

  /**
     * 是否断线
     * @access protected
     * @param \PDOException|\Exception  $e 异常对象
     * @return bool
     */
    protected function isBreak($e)
    {
        if (!$this->config['break_reconnect']) {
            return false;
        }
 
        $info = [
            'server has gone away',
            'no connection to the server',
            'Lost connection',
            'is dead or not enabled',
            'Error while sending',
            'decryption failed or bad record mac',
            'server closed the connection unexpectedly',
            'SSL connection has been closed unexpectedly',
            'Error writing data to the connection',
            'Resource deadlock avoided',
            'failed with errno',
        ];
 
        $error = $e->getMessage();
 
        foreach ($info as $msg) {
            if (false !== stripos($error, $msg)) {
                return true;
            }
        }
        return false;
    }
Copier après la connexion

3. Supprimez ou commentez la fonction isBreak dans /library/think/db/connector/Mysql.php.

Après modification, workerman sera connecté à la base de données pendant une longue période. Si la base de données est déconnectée, elle sera reconnectée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal