Реплицировать асинхронные вызовы — новый поток () — лучший подход?

#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 .