Ваш подход должен работать.
Очевидно, вам также потребуется создать Timer и передать TimerTask соответствующему методу расписания, чтобы запустить повторное выполнение TimerTask, что-то вроде:
Timer timer=new Timer(true);
timer.schedule(myTimerTask, 0, 2*3600*1000L);
В более сложных средах вы можете захотеть использовать что-то вроде Quartz Scheduler . Это даст вам такие вещи, как лучшее ведение журнала, резервное переключение при сбое, более сложные расписания, контроль транзакций и т. Д. Но все это, вероятно, не обязательно для простого варианта использования.