#java #spring #multithreading #spring-rest #java-threads
#java #spring #многопоточность #spring-rest #java-потоки
Вопрос:
Пожалуйста, извините меня, если этот вопрос глупый, я абсолютно новичок в функциональности потоков. Я проверяю, достаточно ли хорошо то, что я когда-либо делаю, или есть какой-либо лучший подход. Пожалуйста, предложите.
У меня есть планировщик, который запускается каждые 5 минут, он извлекает ~ 500 различных записей и распределяет эти данные по 6 классам (функциональная категория), эти 6 классов intern вызывают некоторые другие внешние службы (Restful Services) для проверки данных. Таким образом, для обработки каждого вызова требуется примерно 5 секунд.
Помня об этой проблеме, чтобы реплицировать функциональность асинхронности (запустить и забыть), я добавил анонимный поток в сторону метода обработки этих 6 классов, как показано ниже.
Планировщик может вызывать эти 6 классов несколько раз за эти 5 минут.
class A {
public void processMessages(Message message) {
new Thread(() -> {
//Restful calls to other external services, this take ~5 seconds to respond.
}).start();
}
}
Комментарии:
1. если вы используете spring, взгляните на
@Async
аннотацию2. Здесь можно использовать
ExecutorService
.