无论如何都可以停止REST呼叫吗?

时间:2015-10-15 14:21:11

标签: java rest

从Javascript,我正在调用一个计算密集的REST方法。如果您不再对它返回的内容感兴趣,是否可以停止该REST调用。

据我所知,可以在JS中中止请求。但它不会停止由于REST调用而触发的线程。这就是我在JS中中止ajax调用的方法。 Abort Ajax requests using jQuery

REST接口是用Java编写的。在内部,这个线程也可以创建多个线程。

我想停止一个Java线程。但是来自来电者。来自JS,我触发了它。 How to properly stop the Thread in Java?

2 个答案:

答案 0 :(得分:1)

您可以发送唯一标识符以及您的请求,然后发出另一个请求,指示服务器中止为该ID启动的操作。

答案 1 :(得分:1)

正如Chris在上面的评论中提到的,REST调用应该很快,绝对不是一小时。如果服务器需要做大量的工作需要花费大量时间,那么您应该将设计修改为异步。提供服务器将在完成后使用的回调(也称为推送方法),或每隔几分钟 pull ,通过向服务器发送新请求以查看是否它完成了。

为了实现它,您需要服务器为每个请求返回唯一ID,以便能够在回调/检查调用中识别该特定请求的状态。

唯一ID应该在服务器端实现,以避免两个客户端发送相同的ID - 相互覆盖。

在我上面发布的link中,您可以看到如何实现“停止线程”机制的示例,该机制可以在服务器端实现,并在需要时由客户端调用。