Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Melaksanakan Tamat Masa untuk Sambungan Pangkalan Data di 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
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
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(); }
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!