Java 在任何情况下都可以停止REST呼叫吗?

Java 在任何情况下都可以停止REST呼叫吗?,java,rest,Java,Rest,从Javascript中,我调用了一个计算密集型的REST方法。如果您对REST调用返回的内容不再感兴趣,是否可以停止该调用 我明白,可以在JS中中止请求。但它不会停止由于REST调用而触发的线程。这就是我在JS中中止ajax调用的方式。 REST接口是用Java编写的。在内部,这个线程也可以创建多个线程 我想停止一个Java线程。但是来自来电者。来自JS,我在那里触发了它。 您可以随请求一起发送一个唯一标识符,然后发出另一个请求,指示服务器中止针对该ID启动的操作。正如Chris在上面的评论

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

我明白,可以在JS中中止请求。但它不会停止由于REST调用而触发的线程。这就是我在JS中中止ajax调用的方式。

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

我想停止一个Java线程。但是来自来电者。来自JS,我在那里触发了它。

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

正如Chris在上面的评论中提到的,REST调用应该很快,肯定不会持续一个小时。如果服务器需要做大量的工作,这需要相当长的时间,那么应该将设计修改为异步。要么提供一个回调,服务器将在回调完成后使用(也称为推送方法),要么每隔几分钟向服务器发送一个新请求以查看回调是否完成

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

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


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

假设您使用HTTP进行此操作,您是否尝试从JS客户端寻找连接关闭的数据包?令人困惑的问题(@Jayesh假设,REST调用需要1小时才能返回值。如果15分钟后我对结果不再感兴趣,我想中止由我触发的线程。可能是@Tyzoid的重复。不,我没有。我会检查。尝试阅读更多关于你所说的内容。