Это зависит от вашего приложения.
Если вы используете только сервлеты и jsps и не используете EJB, кластеризацию и т. Д., Просто создайте java.util.Timer и добавляйте туда задачу каждый раз, когда вы обновляете БД,Таймер запустит задачу в соответствии с расписанием.
Если вы разрабатываете более «серьезное» приложение, вы можете использовать Quartz.
Другой возможный подход - использование отложенных сообщений JMS.Подробнее см. здесь .
И следующий, самый сложный подход - использование JCA.Вы можете создать компонент JCA, который имеет «легальный» доступ к опросу потоков и таймеру сервера приложений.