@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
- Планировщик, работающий каждые 2 секунды, читает, Таблица A и Таблица B.
- Есть API-приемник, который сохраняет данные в таблице B, когда он получает данные.
когда API получает данные, загрузка Spring зависает, после Ctl + C код работает нормально.
Могу ли я получить некоторые входные данные, в какой области я могу их исправить?
Запуск только API и планировщиков, код работает нормально, когда создаются потоки и возникают проблемы.