api pdo php,PDO连接在API中超时,php-fpm restart解决了它

我一直从我的代码中得到以下错误:

Database connect failed: PDO::__construct(): send of 12 bytes failed with errno=110 Connection timed out

这个错误持续发生在api上.如果那个api在白天不停地被调用,那么这种情况就不会发生.只有当api不使用一段时间.

我可以通过执行php-fpm restart / reload来解决这个问题,但这不应该是解决方案.

有谁知道如何解决这个问题?

– 编辑 –

这是连接数据库的代码:

public function connectDatabase($allow_persistent = true)

{

$this->db = null;

$this->readINI();

$pdo_attr = [

PDO::ATTR_PERSISTENT => $allow_persistent,

PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8;",

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true,

];

$this->db = new PDO("mysql:host=" . $this->db_data_dbhost . ";dbname=" . $this->db_data_dbname . ";charset=utf8", $this->db_data_username, $this->db_data_password, $pdo_attr);

$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

}

为了更多地进行迭代,目前在两个API上使用它.

>一个一直被客户使用,从未遇到过这个问题

>第二个并没有被许多客户使用,因为它仍在开发中,只有少数客户用于测试目的.我们确实尝试将应用程序推送到appstore,但它会被此问题击落.如上所述,此API最终会遇到错误,如果不重新启动/重新加载php-fpm服务,将无法从此状态恢复.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值