Невозможно запустить Spring `@Async` в выделенном пуле потоков.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно запустить Spring `@Async` в выделенном пуле потоков.

Сообщение Anonymous »

Я ожидал, что приведенный ниже код потратит 1 секунду на приведенный ниже тест, но это заняло 5 секунд. Я запустил его с помощью ChatGPT, и он также не обнаружил никаких проблем. В чем может быть проблема, мешающая Spring Boot запускать каждый вызов метода возврата Future в разных потоках?

Код: Выделить всё

@SpringJUnitConfig(SpringAsyncTest.MyTestConfig::class)
class SpringAsyncTest {

@Autowired
lateinit var sut: MySpecialBean

@TestConfiguration()
class MyTestConfig {
@Bean(name = ["myThreadPoolExecutor"])
fun asyncExecutor(): ThreadPoolTaskExecutor {
val executor = ThreadPoolTaskExecutor()
executor.corePoolSize = 10
executor.queueCapacity = 2000
executor.initialize()
return executor
}

@Bean
fun sut(): MySpecialBean = MySpecialBean()
}
@Test
@Throws(InterruptedException::class, ExecutionException::class)
fun testSpringAsync() {
CompletableFuture.allOf(
sut.aFutureCompletable(),
sut.aFutureCompletable(),
sut.aFutureCompletable(),
sut.aFutureCompletable(),
sut.aFutureCompletable()
).get()
}
}
ИС

Код: Выделить всё

@Component
class MySpecialBean {

@Throws(InterruptedException::class)
@Async("myThreadPoolExecutor") // Use the custom executor
fun aFutureCompletable(): CompletableFuture {
Thread.sleep(1000)  // Simulate a long-running task
return CompletableFuture.completedFuture(null)
}
}
Воспроизведение
Весь код находится в проекте Gradle, который можно клонировать здесь:
github. com/fatso83/test-driven-learning/.

Подробнее здесь: https://stackoverflow.com/questions/790 ... threadpool
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»