Comment définir une minuterie en Java
Cette question cherche à comprendre comment définir une minuterie en Java, spécifiquement pour établir une connexion à une base de données avec un délai d'attente.
Réglage d'une minuterie
Pour créer un timer, utilisez la classe java.util.Timer :
Timer timer = new Timer();
Pour une tâche ponctuelle, planifiez-la avec :
timer.schedule(new TimerTask() { @Override public void run() { // Your database code here } }, 2*60*1000); // 2 minutes in milliseconds
Pour une tâche répétitive, planifiez-la avec :
timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { // Your database code here } }, 2*60*1000, 2*60*1000); // 2 minutes interval
Délai d'expiration pour la connexion à la base de données
Pour implémenter la fonctionnalité de délai d'attente, utilisez un 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(); }
Si la connexion à la base de données réussit ou échoue dans les 2 minutes, la tâche s'exécutera normalement. Sinon, une TimeoutException sera levée. Cependant, la tâche continuera à s'exécuter en arrière-plan, alors gardez cela à l'esprit.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!