В зависимости от типа платформы приложения Spring позволяет использовать Кварц или java.util.concurrent
. Spring имеет абстракцию TaskExecutor
(см. Документацию Spring ), которая значительно упрощает это, но проверьте, какой из них лучше всего подходит для вашего дизайна.
Spring или Quartz (управляется Spring) затем управляет созданием и запуском / остановкой потоков, исполнителей или заданий, а также их частотой / периодом и другими параметрами планирования, а также управляет пулами заданий, которые вам могут потребоваться.
Я использую их для всех своих фоновых задач и пакетных заданий в любых приложениях Java EE, которые пишу без проблем. Так как задания - это POJO, управляемые Spring, они имеют доступ к полной структуре внедрения зависимостей и тому подобному, что влечет за собой Spring, и, конечно, вы можете переключаться между средами планировщика с простым изменением XML-файла конфигурации приложения по мере изменения или масштабирования ваших потребностей. .