Отправлять 50 запросов из весеннего планировщика каждую 1 секунду

У меня есть планировщик с методом:

@Scheduled(fixedDelay = 1000L)
public void sendRequest() {           
 client.getData();   //send request to some server
}

Каждую секунду мне нужно отправлять 50 запросов (звоните client.getData()) Как мне это сделать?

Этот пример очень плохой, но я пишу его, чтобы показать, что мне нужно:

@Scheduled(fixedDelay = 1000L)
public void sendRequest() {  
 for(int i=0; i<50; i++){         
 taskExecutor.execute(() -> client.getData());   //send request to some server
 }
}

Или маби мне нужно создать 50 schedulers и каждый планировщик будет срабатывать каждую секунду?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
146
1

Ответы 1

@Scheduled(fixedDelay = 1000L)

Обработка аннотаций @Scheduled выполняется путем регистрации ScheduledAnnotationBeanPostProcessor. Бин-постпроцессор, который регистрирует методы, аннотированные @Scheduled, для вызова Планировщик задач в соответствии с выражением fixedRate, fixedDelay или cron, предоставленным через аннотацию. И здесь у нас есть история параллелизма. Если вы используете ThreadPoolTaskScheduler в качестве реализации TaskScheduler, буквально, у вас есть реализация интерфейса Spring TaskScheduler, обертывающего собственный ScheduledThreadPoolExecutor. Шаг за шагом мы приходим к Нитьs. Они требуют процессорного времени. Процессорное время - это ваша машина и ее конфигурация.

Вы можете использовать эту аннотацию для своих целей, но реальная производительность зависит от вашего компьютера, на котором развернуто приложение. Если конфигурация машины (ЦП и т. д.) Позволяет обрабатывать / отправлять 50 запросов ровно каждую секунду - милости просим. Если вы попытаетесь запустить 50 планировщиков как отдельные приложения на разных компьютерах, это также может решить вашу проблему.

Другие вопросы по теме