【问题标题】:Is it in anyway possible to stop a REST call?无论如何都可以停止 REST 调用吗?
【发布时间】:2015-10-15 22:58:10
【问题描述】:

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

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

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

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

【问题讨论】:

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

标签: java rest


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      相关资源
      最近更新 更多