如何通过条件异步调用服务方法?

时间:2017-12-28 05:26:01

标签: spring asynchronous

我有服务方法。

@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;

或者我应该制作两种不同的方法?

public void doSome() {
}

@Async
public void doSomeAsync() {
}

1 个答案:

答案 0 :(得分:0)

我在提出问题后立即找到了以下链接。

现在我知道我可以做到这一点。

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

客户可以选择是否等待。