1.一種數(shù)據(jù)庫(kù)連接的控制方法,其特征在于,包括:
在創(chuàng)建數(shù)據(jù)庫(kù)連接時(shí),創(chuàng)建監(jiān)控所述數(shù)據(jù)庫(kù)連接的監(jiān)控線程;
啟動(dòng)所述監(jiān)控線程,監(jiān)控所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間是否超出預(yù)設(shè)時(shí)間閾值;其中,所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間為所述數(shù)據(jù)庫(kù)連接最終執(zhí)行數(shù)據(jù)庫(kù)操作指令的時(shí)間與系統(tǒng)當(dāng)前時(shí)間之間的時(shí)間間隔;
若所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間超出所述預(yù)設(shè)時(shí)間閾值,則釋放所述數(shù)據(jù)庫(kù)連接,并停止所述監(jiān)控線程。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,監(jiān)控所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間是否超出預(yù)設(shè)時(shí)間閾值包括:
獲取第一時(shí)間,所述第一時(shí)間為所述數(shù)據(jù)庫(kù)連接最終執(zhí)行所述數(shù)據(jù)庫(kù)操作指令的時(shí)間;
獲取第二時(shí)間,所述第二時(shí)間為系統(tǒng)當(dāng)前時(shí)間;
計(jì)算所述第一時(shí)間與所述第二時(shí)間的差值,獲得所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間;
判斷所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間是否超過(guò)所述預(yù)設(shè)時(shí)間閾值。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述獲取第一時(shí)間包括:
檢測(cè)所述第一時(shí)間是否處于加鎖狀態(tài),所述加鎖狀態(tài)為所述數(shù)據(jù)庫(kù)連接中的數(shù)據(jù)庫(kù)操作指令正在執(zhí)行時(shí),對(duì)所述第一時(shí)間添加線程鎖,其他線程無(wú)法訪問(wèn)加鎖狀態(tài)的所述第一時(shí)間;
若所述第一時(shí)間未處于所述加鎖狀態(tài),則調(diào)用預(yù)設(shè)函數(shù)獲取所述第一時(shí)間;
若所述第一時(shí)間處于所述加鎖狀態(tài),則將所述監(jiān)控線程加入獲取所述第一時(shí)間對(duì)應(yīng)的等待隊(duì)列中,等待所述第一時(shí)間解鎖之后,調(diào)用預(yù)設(shè)函數(shù)獲取所述第一時(shí)間。
4.根據(jù)權(quán)利要求1-3中任意一項(xiàng)所述方法,其特征在于,在創(chuàng)建數(shù)據(jù)庫(kù)連接之后,所述方法還包括:
獲取所述數(shù)據(jù)庫(kù)操作指令;
判斷所述數(shù)據(jù)庫(kù)操作指令是否為釋放所述數(shù)據(jù)庫(kù)連接;
若所述數(shù)據(jù)庫(kù)操作指令不為釋放所述數(shù)據(jù)庫(kù)連接,則執(zhí)行所述數(shù)據(jù)庫(kù)操作指令,并更新所述數(shù)據(jù)庫(kù)連接最終執(zhí)行數(shù)據(jù)庫(kù)操作指令的時(shí)間;
若所述數(shù)據(jù)庫(kù)操作指令為釋放所述數(shù)據(jù)庫(kù)連接,則執(zhí)行釋放所述數(shù)據(jù)庫(kù)連接。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
若所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間未超出所述預(yù)設(shè)時(shí)間閾值,則維持所述數(shù)據(jù)庫(kù)連接,并繼續(xù)執(zhí)行所述監(jiān)控線程。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,監(jiān)控所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間是否超出預(yù)設(shè)時(shí)間閾值包括:
實(shí)時(shí)或者按照預(yù)設(shè)監(jiān)控周期執(zhí)行所述監(jiān)控所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間是否超出預(yù)設(shè)時(shí)間閾值。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述啟動(dòng)所述監(jiān)控線程包括:
根據(jù)需求發(fā)送啟動(dòng)操作指令啟動(dòng)所述監(jiān)控線程;
或者在創(chuàng)建所述監(jiān)控線程時(shí),設(shè)置啟動(dòng)所述監(jiān)控線程的啟動(dòng)時(shí)間,根據(jù)所述啟動(dòng)時(shí)間啟動(dòng)所述監(jiān)控線程。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建監(jiān)控線程包括:
調(diào)用預(yù)置應(yīng)用程序編程接口,創(chuàng)建所述監(jiān)控線程。
9.一種數(shù)據(jù)庫(kù)連接的控制裝置,其特征在于,包括:
創(chuàng)建單元,用于在創(chuàng)建數(shù)據(jù)庫(kù)連接時(shí),創(chuàng)建監(jiān)控所述數(shù)據(jù)庫(kù)連接的監(jiān)控線程;
啟動(dòng)單元,用于啟動(dòng)所述創(chuàng)建單元?jiǎng)?chuàng)建的所述監(jiān)控線程;
監(jiān)控單元,用于監(jiān)控所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間是否超出預(yù)設(shè)時(shí)間閾值;其中,所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間為所述數(shù)據(jù)庫(kù)連接最終執(zhí)行數(shù)據(jù)庫(kù)操作指令的時(shí)間與系統(tǒng)當(dāng)前時(shí)間之間的時(shí)間間隔;
釋放單元,用于當(dāng)所述監(jiān)控單元監(jiān)控的所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間超出所述預(yù)設(shè)時(shí)間閾值時(shí),釋放所述數(shù)據(jù)庫(kù)連接;
停止單元,用于在所述釋放單元釋放所述數(shù)據(jù)庫(kù)連接時(shí),停止所述監(jiān)控線程。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述監(jiān)控單元包括:
第一獲取模塊,用于獲取第一時(shí)間,所述第一時(shí)間為所述數(shù)據(jù)庫(kù)連接最終執(zhí)行所述數(shù)據(jù)庫(kù)操作指令的時(shí)間;
第二獲取模塊,用于獲取第二時(shí)間,所述第二時(shí)間為系統(tǒng)當(dāng)前時(shí)間;
處理模塊,用于計(jì)算所述第一獲取模塊獲取的所述第一時(shí)間與所述第二獲取模塊獲取的所述第二時(shí)間的差值,獲得所述數(shù)據(jù)庫(kù)連接的空閑時(shí)間;
判斷模塊,用于判斷所述處理模塊獲取的所述空閑時(shí)間是否超過(guò)所述預(yù)設(shè)時(shí)間閾值。