Comment faire pour configurer un compte à rebours en Java?
Comment définir une Minuterie, disons pour 2 minutes, essayez de vous connecter à une Base de données, puis jeter l'exception si il y a un problème de connexion?
- Coul le OP préciser si elles le désirent, à une simple tentative de l'action pendant au moins 2 minutes, ou si l'exception doit être levée maintenant, plus tard, les deux minutes, même si une tentative de connexion est actuellement en cours
Vous devez vous connecter pour publier un commentaire.
Donc, la première partie de la réponse est de savoir comment faire ce que le sujet demande, comme c'était la façon dont je l'ai d'abord interprété et peu de gens semblent trouver utile. La question a depuis précisé et je l'ai étendu la réponse à adresse.
Réglage d'un minuteur de
Vous devez d'abord créer un Timer (je suis en utilisant le
java.util
version ici):..
Pour exécuter la tâche une fois que vous feriez:
Pour la tâche de répétition après la durée que vous feriez:
Faire une tâche timeout
À faire ce que la clarification de la question demande, c'est de tenter d'effectuer une tâche pour une période de temps donnée, vous pouvez effectuer les opérations suivantes:
Execute normalement avec des exceptions si la tâche est terminée dans un délai de 2 minutes. Si il fonctionne plus longtemps que cela, le TimeoutException sera lancer.
Un problème est que même si vous serez un TimeoutException après les deux minutes, la tâche sera effectivement continuer à exécuter, bien que sans doute une base de données ou une connexion réseau sera finalement le temps de jeter une exception dans le fil. Mais attention, il risque de consommer de ressources jusqu'à ce qu'il se passe.
Timer timer = new Timer();
- aucune de ces méthodes dansTimer
classe.. Java 1.7Utiliser cette
System.currentTimeMillis();
Il a été donne d'excellents résultats dans mycase avec une si avant un threadwait(milliseconds)
Ok, je crois que je comprends votre problème maintenant. Vous pouvez utiliser un Avenir pour essayer de faire quelque chose et puis délai d'attente après un peu si rien ne s'était passé.
E. g.:
Comment arrêter la minuterie? D'arrêter et de lire à nouveau quand faire quelque chose dans ce code
Lorsque j'utilise le
timer.cancel();
il s'arrête, mais si proche de la forme et de l'ouvrir à nouveau l'exception est levée
[Android] si quelqu'un qui cherche à mettre en œuvre timer sur android à l'aide de java.