Лучший способ создать фоновый поток в Java

Каков наилучший способ создания фонового потока, который будет запускаться каждые 15 минут для получения данных из базы данных?

Ниже приведен код, который будет работать нормально, я думаю, в производстве, но есть ли какой-то другой способ лучше, чем у меня, или что-то, о чем я должен знать?

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

Есть ли недостаток в использовании приведенного выше кода. И как ScheduledExecutorService сравнивается с TimerTask?

Какой способ лучше?

Любой пример базы на моем коде будет оценен по этому вопросу, если есть какой-либо лучший подход.

Ответы на вопрос(3)

Ваш ответ на вопрос