Rumah >Java >javaTutorial >Bagaimana untuk Melaksanakan Tamat Masa Sambungan Pangkalan Data di Java?

Bagaimana untuk Melaksanakan Tamat Masa Sambungan Pangkalan Data di Java?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-20 03:18:09540semak imbas

How to Implement a Database Connection Timeout in Java?

Cara Menetapkan Pemasa dalam Java

Soalan ini bertujuan untuk memahami cara menetapkan pemasa dalam Java, khususnya untuk mewujudkan sambungan pangkalan data dengan had tamat masa.

Menetapkan Pemasa

Kepada buat pemasa, gunakan kelas java.util.Timer:

Timer timer = new Timer();

Untuk tugasan sekali sahaja, jadualkannya dengan:

timer.schedule(new TimerTask() {
  @Override
  public void run() {
    // Your database code here
  }
}, 2*60*1000); // 2 minutes in milliseconds

Untuk tugasan berulang, jadualkannya dengan :

timer.scheduleAtFixedRate(new TimerTask() {
  @Override
  public void run() {
    // Your database code here
  }
}, 2*60*1000, 2*60*1000); // 2 minutes interval

Tamat masa untuk Sambungan Pangkalan Data

Untuk melaksanakan tamat masa kefungsian, gunakan ExecutorService:

ExecutorService service = Executors.newSingleThreadExecutor();

try {
    Runnable r = new Runnable() {
        @Override
        public void run() {
            // Database task
        }
    };

    Future<?> f = service.submit(r);

    f.get(2, TimeUnit.MINUTES); // Attempt task for 2 minutes
} catch (TimeoutException e) {
    // Task timed out
} finally {
    service.shutdown();
}

Jika sambungan pangkalan data berjaya atau gagal dalam masa 2 minit, tugasan akan dilaksanakan seperti biasa. Jika tidak, TimeoutException akan dibuang. Walau bagaimanapun, tugasan akan terus berjalan di latar belakang, jadi ingatlah perkara itu.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Tamat Masa Sambungan Pangkalan Data di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn