La mejor manera de crear un hilo de fondo en java

¿Cuál es la mejor manera de crear un hilo de fondo que se ejecutará cada 15 minutos para obtener los datos de la base de datos?

A continuación se muestra el código que tengo que funcionará bien, supongo en la producción, pero ¿hay alguna otra forma mejor que tenga o algo de lo que deba estar al tanto?

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();
}

¿Hay alguna desventaja en el uso del código anterior. ¿Y cómo se compara ScheduledExecutorService con TimerTask?

¿Qué camino es mejor?

Cualquier ejemplo de base en mi código será apreciado en esto si hay un mejor enfoque.

Respuestas a la pregunta(3)

Su respuesta a la pregunta