Java'da Zamanlayıcı nasıl ayarlanır?
Bir Veritabanına bağlanmayı denemek ve ardından bağlantıda herhangi bir sorun varsa istisna atmak için 2 dakika gibi bir Zamanlayıcı nasıl ayarlanır?
140
3
Bir Veritabanına bağlanmayı denemek ve ardından bağlantıda herhangi bir sorun varsa istisna atmak için 2 dakika gibi bir Zamanlayıcı nasıl ayarlanır?
Cevabın ilk kısmı, konunun sorduğu şeyin nasıl yapılacağıdır, çünkü başlangıçta bu şekilde yorumladım ve birkaç kişi yararlı bulmuş gibi görünüyordu. Soru o zamandan beri açıklığa kavuşturuldu ve ben de bunu ele almak için cevabı genişlettim.
Zamanlayıcı ayarlama
Öncelikle bir Zamanlayıcı oluşturmanız gerekir (ben burada
java.util
sürümünü kullanıyorum):..
Görevi bir kez çalıştırmak için yapmanız gerekenler:
Yapacağınız süreden sonra görevin tekrarlanmasını sağlamak için:
Görev zaman aşımına uğratılıyor
Özellikle açıklanan sorunun sorduğu şeyi yapmak için, yani belirli bir süre boyunca bir görevi yerine getirmeye çalışmak için aşağıdakileri yapabilirsiniz:
Bu, görev 2 dakika içinde tamamlanırsa istisnalar dışında normal şekilde yürütülür. Bundan daha uzun sürerse, TimeoutException fırlatılacaktır.
Bir sorun, iki dakika sonra bir TimeoutException almanıza rağmen, görev aslında çalışmaya devam edecektir, ancak muhtemelen bir veritabanı veya ağ bağlantısı sonunda zaman aşımına uğrayacak ve iş parçacığında bir istisna oluşturacaktır. Ancak bu gerçekleşene kadar kaynakları tüketebileceğini unutmayın.
Bunu kullanın
Tamam, sanırım sorununuzu şimdi anladım. Bir şey yapmaya çalışmak için bir Future kullanabilir ve hiçbir şey olmamışsa bir süre sonra zaman aşımına uğratabilirsiniz.
Örneğin: