복붙노트

[SPRING] Spring 3.0을 사용하는 메소드에 @Async를 사용할 때 타임 아웃 값 제공하기

SPRING

Spring 3.0을 사용하는 메소드에 @Async를 사용할 때 타임 아웃 값 제공하기

문서를 살펴 보았지만 Spring 3.0을 사용하여 @Async annotated 메소드를 사용할 때 생성되는 비동기 연산에 대한 시간 초과를 지정하는 방법이 있는지 찾을 수 없습니다.

그렇게 할 수있는 방법이 있습니까? 비동기 계산을 트리거 할 때마다 이것이 필수적이라고 생각합니다.

해결법

  1. ==============================

    1.타임 아웃은 @Async 주석에 의해 제공되지 않습니다. 타임 아웃은 함수 자체가 아니라 함수 호출자가 결정해야하기 때문입니다.

    타임 아웃은 @Async 주석에 의해 제공되지 않습니다. 타임 아웃은 함수 자체가 아니라 함수 호출자가 결정해야하기 때문입니다.

    결과를 반환하는 @ Async-annotated 메서드에서 타임 아웃을 참조한다고 가정합니다. 이러한 메소드는 Future의 인스턴스를 리턴해야하고 Future의 get () 메소드는 시간 초과를 지정하는 데 사용됩니다.

    e.

    @Async
    public Future<String> doSomething() {
       return new AsyncResult<String>("test");
    }
    

    그리고

    Future<String> futureResult = obj.doSomething();  // spring makes this an async call
    String result = futureResult.get(1, TimeUnit.SECOND);
    
  2. ==============================

    2.@Async 소스 코드에는 구성 옵션이 없습니다.

    @Async 소스 코드에는 구성 옵션이 없습니다.

  3. from https://stackoverflow.com/questions/3785197/providing-a-timeout-value-when-using-async-for-a-method-using-spring-3-0 by cc-by-sa and MIT license