雲服務器項目數據庫連接超時問題解決


具體情況是這樣,我在自己的雲服務器部署了一個javaweb項目,該項目主要功能就是對數據庫的數據進行展示,但是每次剛發布后都能正常運行,而到了第二天再去訪問這個項目就連接不上數據庫了,查了資料才知道原來mysql的連接會默認在8小時無操作后被銷毀,查解決辦法,網上很多帖子都說吧那個默認銷毀時長改為一年就行了,但這種方法肯定是會影響服務器運行速度的,對此我自己是通過開辟一個線程解決的,如果這個解決方法會有什么隱患也希望路過的大佬可以指點一下。

具體做法:

在工具類和數據庫創建連接后,開辟一個新線程,每隔一段時間訪問一下數據庫但又不進行其他操作,總而言之就是是使得對數據庫的無操作時間不超過8小時,代碼如下:

final long timeInterval = 1000*60*4;//設置執行周期為4小時
    Runnable runnable = new Runnable() {
        public void run() {
            while (true) {
               Statement statement;
            try {
                statement = conn.createStatement();
//conn為數據庫連接
            
               //要執行的SQL語句
            String sql = "select  * from info limit 1";
          
                statement.executeQuery(sql);
                 
            } catch (SQLException e1) {
                
                e1.printStackTrace();
            }
                
                try {
                    Thread.sleep(timeInterval);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    };
    Thread thread = new Thread(runnable);
    thread.start();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM