php - 如何解决msyql语句链接超时?
为情所困
为情所困 2017-05-16 13:10:50
0
3
652

我用thinkphp框架
在命令行模式下
写了一个死循环
我要保证我的逻辑操作
永远不会中断
而且每秒执行一次
代码如下

public function index() { $redis = new \Redis\Redis();//实例化redis $redis_res = $redis -> ping(); if ($redis_res !== 'PONG') { error_log('/tmp/1.log', $e->getMessage()); } $abb = M('abb');//实例化 $i = 0; while(true) { //用来处理链接数据库超时 方法1 $i++; if ($i >= 1000) { $i = 0; $abb = M('abb'); } //////////逻辑操作/////////// try { $result1 = $abb->add(array('a' => 'abc'));//操作数据库 } catch (\Exception $e) { error_log('/tmp/2.log', $e->getMessage()); } try { $result2 = $redis -> Lpush('abc',$result1);//操作redis } catch (\Exception $e) { error_log('/tmp/3.log', $e->getMessage()); } //////////逻辑操作/////////// sleep(1); } }

但是有一个问题 我这个链接数据库时间过长会MySQL会自动断掉
2006:MySQL server has gone away
wait_timeout默认是8小时,
去增加wait_timeout 也不是长久之计,
所以我想执行1000次时重新M('abb') ,但好像还是不行,重新M('abb')不是重新练=链接数据库吗?

有没有其他解决方案?
如何保证我的链接数据库不会中断?
redis操作有链接超时的问题吗?
求指导!

为情所困
为情所困

全員に返信 (3)
某草草

毎回データベースに再接続することをお勧めします。エラーはリンクの喪失が原因である可能性があります。

いいねを押す+0
    刘奇

    データベース関連のc3p0のパラメータ値をデータベースのwait_timeoutと大きく乖離しないように調整します

    いいねを押す+0
      淡淡烟草味

      mysql_ping 関数を使用して、接続されているかどうかを確認するだけです:

      リーリー
      いいねを押す+0
        最新のダウンロード
        詳細>
        ウェブエフェクト
        公式サイト
        サイト素材
        フロントエンドテンプレート
        私たちについて 免責事項 Sitemap
        PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!