Spring boot Зависает после одновременных обращений к базе данных - PullRequest
0 голосов
/ 05 февраля 2020
@Bean
public ThreadPoolTaskExecutor taskExecutor() {
    ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor();
    pool.setCorePoolSize(5);
    pool.setMaxPoolSize(10);
    pool.setWaitForTasksToCompleteOnShutdown(true);
    return pool;
}

//Starting Threads which will run till Stop button is pressed
for(No. of Records in Devices Table){
   TagReader rd = (TagReader) applicationContext.getBean("tagReader");
   rd.setParams(param 1 ... 10);
   taskExecutor.execute(rd);
}

// This is in TagReading Class Which checks for stop criteria (boolean) 
while(tagReadingObject.reading){
  Status s = db.getStatus(tagReadingObject.getByName('identifier'));
  tagReadingObject.reading = s.getReading();
}

//Scheduler 
Runs every 2 seconds reading Common Tables which above threads uses and sends to queues 
  1. Планировщик, работающий каждые 2 секунды, читает, Таблица A и Таблица B.
  2. Есть API-приемник, который сохраняет данные в таблице B, когда он получает данные.

когда API получает данные, загрузка Spring зависает, после Ctl + C код работает нормально.

Могу ли я получить некоторые входные данные, в какой области я могу их исправить?

Запуск только API и планировщиков, код работает нормально, когда создаются потоки и возникают проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...