2016-09-22 53 views
2

是否可以爲單獨的cron作業維護單個數據庫連接或對象?腳本是用PHP編寫的。爲多個cron作業維護單個數據庫連接

我有多個獨立的cron作業運行插入/更新數據庫。這也是每15分鐘運行一次。最近超過max db連接。

是否有任何服務來維護db連接?像使用node.js或javascript 或者是否有可能使用php進行連接池?

我試圖使用PHP這樣的持久連接,

$link = mysqli_connect('p:localhost', 'fake_user', 'my_password', 'my_db'); 

但隨後無法按預期工作。每個cron作業生成到mysql的單獨連接。

回答

0

PHP中沒有連接池功能,但有一點可以通過使用「mysql_pconnect」來實現。同時,使用mysql_pconnect時必須非常小心。

根據PHP mysql_pconnect:

mysql_pconnect()行爲很像mysql_connect()函數有兩個主要區別。

首先,連接時,函數首先會嘗試找到已經用相同的主機,用戶名和密碼打開的(持久)鏈接。如果找到一個,那麼它的標識符將被返回而不是打開一個新的連接。

其次,當腳本執行結束時,不會關閉到SQL服務器的連接。相反,鏈接將保持打開以供將來使用(mysql_close()不會關閉由mysql_pconnect()建立的鏈接)。

這種類型的鏈接因此被稱爲「持久性」。

更多信息請點擊here

你可以做到這一點,你必須關閉所有的數據庫連接,是理想的超過30秒或1分鐘一兩件事,這可以通過自身的cron來完成。其次,你必須在你的cron腳本中打開一個單獨的連接,並且在腳本執行完之後必須關閉它。