取消请求时取消REST服务

时间:2019-05-28 06:27:48

标签: java rest

我有一个来自角度用户界面的片段,当用户在字段中键入字母时,该片段将调用myService.getNames()。每当用户在字段中输入另一个字母时,switchMap都会取消上一个请求。

.pipe(
    debounceTime(500),
    switchMap(value => this.myService.getNames(value))
)

此服务将调用REST端点http://localhost:8080/listing?value=<value_sent_from_client>。用于检索名称列表的查询需要一些时间才能完成。如果用户编辑了该字段3次,将有2个取消的请求和1个正在进行的请求。

在服务器端,如何取消2个先前运行的查询?还是会自动取消?

1 个答案:

答案 0 :(得分:0)

您不能在服务器端取消请求。该解决方案可能采用更复杂的算法,例如:

  • 每个请求都进入队列并立即返回,而不等待处理完成(存储在DB中等)
  • 如果来自同一用户的新项目,则排队替换先前的项目
  • 客户端通过网络套接字从服务器订阅更新

或任何其他方法。