Spring RestTemplate不允许取消/ InterruptedException

我有一个使用RestTemplate来调用getForObject 。 此任务将提交给执行程序服务。 在尝试取消它之前,我允许进程运行时间为x秒。 但是当我调用Future.cancel(true)并且任务在getForObject方法中等待时,线程/任务不会被取消。

我测试了代码,如果我把一个Thread.sleep放在getForObject位置,我得到一个InterruptedException 。 但是,当任务在getForObject内部getForObject不会发生中断。 在Restful调用完成之前,该方法不会返回。

有没有办法取消rest通话?

我看到这个post取消中止中断一个spring android resttemplate请求,但唯一提出的解决方案似乎是一个kludge。

我不熟悉RestTemplate类,但听起来你有一个不可中断的阻塞调用。 这意味着取消未来或中断线程不会产生任何影响。 在这种情况下,我所知道的唯一解决方案是使用不推荐使用的Thread.terminate()方法来Thread.terminate()该线程。 请注意,您必须非常小心这样做,因为它可能会使您的对象处于无效状态。