ホームページ >Java >&#&チュートリアル >Java でデータベース接続のタイムアウトを実装するにはどうすればよいですか?
Java でのタイマー実装を理解する
多くの場合、開発者は、特にデータベースへの接続を確立するときに、特定のタスクに対してタイマーを設定する必要に直面します。この記事は、特に接続試行がタイムアウトして例外をスローする必要があるシナリオで、Java でタイマーを設定する方法を説明することを目的としています。
タイマーの設定
java.util パッケージを使用して Java でタイマーを設定するには、次の手順に従います。
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
または、繰り返しタスクの場合:
timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { // Your database connection logic } }, 2 * 60 * 1000, 2 * 60 * 1000); // 2 minutes
タスクのタイムアウトの作成
タイムアウト メカニズムを実装するには、次のアプローチの使用を検討してください:
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(); }
このアプローチではタスクが通常どおり実行され、タイムアウト期間内に完了した場合は例外がスローされます。ただし、タイムアウトを超えてもタスクは実行を継続しますが、接続障害によりさらに例外が生成される可能性があることに注意してください。
以上がJava でデータベース接続のタイムアウトを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。