【问题标题】:PHP PDO Postgres database start/stop issuePHP PDO Postgres 数据库启动/停止问题
【发布时间】:2014-09-14 16:30:52
【问题描述】:

我在 PDPPDO 的支持库中使用 Yii 和 postgres 数据库。

我在连接 Postgres 数据库的 PDO 库中遇到问题。

我正在使用一些后台进程来工作,所以最终它将是 24X7 持续任务。现在,根据用例,我的 Postgres 可能会以某种方式关闭/崩溃。那个时候,pg_prepare() 函数返回 FALSE.. 完全正确!!!

现在,几分钟后,如果 Postgres 启动。所以最终 pg_prepare() 应该给我资源 ID。但它仍然给我 FALSE !!

我相信由于重新启动 postgres 服务器,它不允许我再次使用相同的资源。在那种情况下,我需要无限循环来不断地通过 Postgres ping 以获取新连接。

如果需要再次打开连接,那么我认为以下类似会有所帮助,

    // THOUGH IT'S CHECKING FOR $this->_pdo 
    // I need to make it NULL before process...
    Yii:app()->db->open();

现在,这是正确的流程吗?或者你们对此有什么其他想法吗?

谢谢...

【问题讨论】:

    标签: php postgresql yii pdo


    【解决方案1】:

    经过大量研究,发现没有任何解决方案可以自动通知 Yii 重新开始连接。因此,为了保持这一点,我在内部保留一个标志来检查连接。

    在 Yii 中,要重新连接任何数据库,您需要使用删除以前的连接,

        Yii::app()->db->setActive(false);
    

    它将删除您之前的所有连接和来源,并允许您再次使用,

        Yii::app()->db->setActive(true);
    

    如果仍然无法找到连接,那么我们可以将后台作业延迟几分钟。好处,你不需要重新启动你的后台工作人员。

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多