SORU
28 EKİM 2010, PERŞEMBE


Java nasıl bir zamanlayıcı ayarlamak için

Bir Zamanlayıcı ayarlamak için nasıl 2 dakika bağlanma eğer herhangi bir sorun varsa, bir veritabanına bağlanmak ve sonra da özel durum için denemek için söyle

CEVAP
28 EKİM 2010, PERŞEMBE


Cevap ilk bölümü konu bu ben Başlangıçta bu şekildeydi ve bir kaç kişi bulmak için yararlı gibi görünüyordu ne isterse yapmak için nasıl. Soruyu beri açıklık ve cevabı bu adrese genişletilmiş ettik.

Bir zamanlayıcı ayarı

İlk çekim (burada java.util sürümünü kullanıyorum) oluşturmanız gerekir:

import java.util.Timer;

..

Timer timer = new Timer();

Görevi çalıştırmak için her şeyi yapardım bir zamanlar

timer.schedule(new TimerTask() {
  @Override
  public void run() {
    // Your database code here
  }
}, 2*60*1000);

Görev yaptığınız süre sonra tekrarlamak için:

timer.scheduleAtFixedRate(new TimerTask() {
  @Override
  public void run() {
    // Your database code here
  }
}, 2*60*1000, 2*60*1000);

Bir görev yapma zaman aşımı

Özellikle açıklık soru sorar Ne için, bir görevi gerçekleştirmek için çalışıyor belirli bir süre için, aşağıdakileri yapabilirsiniz:

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 the task for two minutes
}
catch (final InterruptedException e) {
    // The thread was interrupted during sleep, wait or join
}
catch (final TimeoutException e) {
    // Took too long!
}
catch (final ExecutionException e) {
    // An exception from within the Runnable task
}
finally {
    service.shutdown();
}

Bu görevi 2 dakika içinde tamamlanırsa normalde istisnalar dışında yürütülür. Eğer bu daha uzun çalışırsa, TimeoutException atmak olacaktır.

Tek sorun, iki dakika sonra bir TimeoutException alırsın ancakbu görev aslında çalışmaya devam edecekmuhtemelen , ancak veritabanı veya ağ bağlantısı sonunda ve iş parçacığı bir özel durum zaman atar. Ama bu olana kadar kaynaklarını tüketir olabilir farkında olun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Michael Neal

    Michael Neal

    2 Mayıs 2009
  • SegaAmerica

    SegaAmerica

    5 Mart 2008