Najlepszy sposób na utworzenie wątku w tle w Javie

Jaki jest najlepszy sposób na utworzenie wątku w tle, który będzie uruchamiany co 15 minut, aby uzyskać dane z bazy danych?

Poniżej znajduję się kod, który będzie działał. Zgaduję, że w produkcji, ale czy jest inny sposób, który posiadam lub coś, o czym powinienem wiedzieć?

private static void checkDatabaseEveryXMinutes() {
    new Thread() {
        public void run() {
            while (true) {
                try {
                    Thread.sleep(checkingAfterEveryXMinutes);
                    getDataFromDatabase();
                } catch (InterruptedException ex) {
                    //log here
                } catch (Exception e) {
                    //log here
                }
            }
        }
    }.start();
}

Czy korzystanie z powyższego kodu jest niekorzystne? I jak porównuje ScheduledExecutorService z TimerTask?

Który sposób jest lepszy?

Każda przykładowa podstawa mojego kodu zostanie doceniona w tym przypadku, jeśli będzie jakieś lepsze podejście.

questionAnswers(3)

yourAnswerToTheQuestion