Если я скажу в одной строке, я бы сказал, используйте Quartz, так как он позаботится о том, чтобы управлять работой, связанной с низкоуровневым планированием. С помощью таймера вы можете делать все, что делает кварц (даже заставить потоки таймера продолжать опрос, чтобы проверить, запущено ли веб-приложение, и выйти в противном случае). Но это должно быть сделано в вашем коде вами. С Кварцем все это вы получаете из коробки.
Теперь подробности
Кварц обеспечивает
1. Постоянство работы
2. Управляемый пул потоков, поэтому вы создаете соответствующее количество потоков и заставляете задания ждать после этого.
3. Инициализация сервлета для интеграции с вашим веб-приложением. Когда приложение закрывается, я думаю, что оно позаботится о том, чтобы закрыть ваши темы, но я не пробовал. Поэтому я бы не стал много комментировать.
4. Планирование на основе RMI для кластерных сред.
Есть и другие, но они были основными мотиваторами, почему люди чаще используют кварц.