Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Melaksanakan Tamat Masa untuk Sambungan Pangkalan Data di Java?

Bagaimanakah Saya Boleh Melaksanakan Tamat Masa untuk Sambungan Pangkalan Data di Java?

DDD
Lepaskan: 2024-12-31 17:18:11
asal
1085 orang telah melayarinya

How Can I Implement Timeouts for Database Connections in Java?

Memahami Pelaksanaan Pemasa dalam Java

Selalunya, pembangun menghadapi keperluan untuk menetapkan pemasa untuk tugas tertentu, terutamanya apabila mewujudkan sambungan ke pangkalan data. Artikel ini bertujuan untuk memberi penerangan tentang cara menetapkan pemasa dalam Java, terutamanya untuk senario di mana percubaan sambungan tamat dan pengecualian mesti dibuang.

Menetapkan Pemasa

Untuk menetapkan pemasa dalam Java menggunakan pakej java.util, ikut langkah berikut:

import java.util.Timer;

Timer timer = new Timer();
timer.schedule(new TimerTask() {
  @Override
  public void run() {
    // Your database connection logic
  }
}, 2 * 60 * 1000); // 2 minutes
Salin selepas log masuk

Sebagai alternatif, untuk mengulangi tugasan:

timer.scheduleAtFixedRate(new TimerTask() {
  @Override
  public void run() {
    // Your database connection logic
  }
}, 2 * 60 * 1000, 2 * 60 * 1000); // 2 minutes
Salin selepas log masuk

Membuat Tamat Masa Tugas

Untuk melaksanakan mekanisme tamat masa, pertimbangkan untuk menggunakan pendekatan berikut:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

ExecutorService service = Executors.newSingleThreadExecutor();

try {
    // Database task
    Runnable r = () -> {
      // Your database code here
    };

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

    // Attempt task for two minutes
    f.get(2, TimeUnit.MINUTES);
} catch (final InterruptedException e) {
    // Thread interrupted during sleep/wait/join
} catch (final TimeoutException e) {
    // Took too long
} catch (final ExecutionException e) {
    // Exception within task
} finally {
    service.shutdown();
}
Salin selepas log masuk

Ini pendekatan melaksanakan tugas seperti biasa, membuang pengecualian jika ia selesai dalam tempoh tamat masa. Walau bagaimanapun, ambil perhatian bahawa tugasan akan terus dijalankan jika ia melebihi tamat masa, walaupun berkemungkinan menghasilkan pengecualian lanjut disebabkan kegagalan sambungan.

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

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan