我们正在对timeout()
进行简单的Flowable
调用。
Flowable.fromCallable(() -> callToExternalService())
.timeout(500, TimeUnit.MILLISECONDS)
超时本身可以正常工作,但是我们注意到,超时调用callToExternalService
(即使它被丢弃了)有时也可能要花几分钟,即使它正在运行,它也不会释放线程,直到它被释放为止。完全完成,这样做浪费资源。在我们的情况下,如果调用超时,则可以立即杀死线程,因此它不应该等待调用结束。
有没有办法做到这一点?
答案 0 :(得分:0)
在.subscribeOn(Schedulers.io())
之前添加.timeout
(或其他一些调度程序)