2017-12-28 8 views
0

私はサービス方法を持っています。条件によって非同期にサービスメソッドを呼び出すにはどうすればよいですか?

@Service 
public class MyService { 

    public void doSome() { 
    } 
} 

私はすでに私が@Asyncとメソッドに注釈を付けることができます知っています。

@Service 
public class MyService { 

    @Async 
    public void doSome() { 
    } 
} 

私はこれらの発信者に非同期を選択させる方法はありますか?

言って、いくつかのヘルパーと...

public void readSome(AsynContext asyncContext) { 
    if (async) { 
     asyncContext.call(() -> { 
      myService.doSome(); 
     }); 
    } else { 
     myService.doSome(); 
    } 
} 

@Autowired 
private MyService myService; 

または私はちょうど2つの異なる方法を作る必要がありますか?

public void doSome() { 
} 

@Async 
public void doSomeAsync() { 
} 

答えて

0

質問を投稿した直後に次のリンクが見つかりました。

今、私はこれを行うことができます知っています。

public CompletableFuture<Some> doSome() { 
    // ... 
} 

クライアントは待機するかどうかを選択できます。

関連する問題