Viac na
Ako nastaviť časovač v jazyku Java?
Ako nastaviť časovač, napríklad na 2 minúty, aby sa pokúsil pripojiť k databáze a potom vyhodil výnimku, ak sa vyskytne nejaký problém s pripojením?
140
3
Takže prvá časť odpovede sa týka toho, ako urobiť to, čo sa v téme žiada, pretože takto som to pôvodne interpretoval a niekoľkým ľuďom sa to zdalo užitočné. Odvtedy bola otázka objasnená a ja som odpoveď rozšíril, aby som sa tým zaoberal.
Nastavenie časovača
Najskôr si musíte vytvoriť Timer (tu používam verziu
java.util
):..
Ak chcete raz spustiť úlohu, vykonáte:
Ak chcete, aby sa úloha po uplynutí doby trvania opakovala, vykonali by ste:
Určenie časového limitu úlohy
Ak chcete konkrétne urobiť to, čo sa pýta objasnená otázka, teda pokúsiť sa vykonať úlohu počas daného časového obdobia, môžete urobiť nasledovné:
Toto sa vykoná normálne s výnimkami, ak sa úloha dokončí do 2 minút. Ak bude prebiehať dlhšie, vyhodí sa TimeoutException.
Jedným z problémov je, že hoci sa po uplynutí dvoch minút zobrazí TimeoutException, úloha bude v skutočnosti pokračovať v behu, hoci pravdepodobne databázové alebo sieťové pripojenie nakoniec vyprší a vyhodí výnimku vo vlákne. Upozorňujeme však, že kým sa tak stane, môže to spotrebovať zdroje.
Použite tento
Ok, myslím, že už chápem váš problém. Môžete použiť Future, aby ste sa pokúsili niečo urobiť a potom po chvíli ukončili čas, ak sa nič nestalo.
Napr: