나는 이것에 대한 모범 사례가 아닌지 잘 모르겠다.스프링 작업 비동기 및 지연
특정 서비스에 하나의 요청을 보낸 후이 요청은 확인을 반환하고 요청을 대기시킵니다. 끝날 때 알리는 데 사용되는 콜백 서비스가 있습니다.
문제는 전체 프로세스가 아무런 통보없이 오랜 시간이 걸릴 수 있으며 이후에는 시간 초과를 고려해야한다는 것입니다.
응용 프로그램은 SpringBoot APP이며 @EnableAsync 및 @Async 주석을 서비스 메서드에서 절전 시간과 함께 사용하려고했습니다.
@Configuration
@EnableAsync
public class AsyncConfiguration implements AsyncConfigurer {
@Override
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(2);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(500);
executor.setThreadNamePrefix("TIMCLL-");
executor.initialize();
return executor;
}
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
// TODO Auto-generated method stub
return null;
}
}
. . .
@Async
public void verifyStatusTimPayment() throws InterruptedException {
Thread.sleep(5000);
logger.info("Executed after 5s " + new SimpleDateFormat("dd/MM/yyyy hh:mm:ss").format(new Date()));
}
검증 요청 후 15 분 완료 요청 당 한 번 발생해야 될 필요가있다.
Thread.sleep을 만들지 않고 어떻게 할 수 있습니까 ?????