中止或终止需要很长时间回复的请求



我有一个使用SmartGWT,Jaxrs,ejb &jpa的应用程序。

  • 我有一个方案,用户想要通过输入FirstName,LastName或Middlebane,SSN,电子邮件等来提取数据(称为搜索屏幕(
  • 数据库包含数百万人中的大量记录,这需要大量时间来回复。
  • 例如,使用FirstName的用户搜索需要大量时间来响应,在这种情况下,用户需要cancel/terminate/abort请求。
  • 在SmartGWT或Jaxrs(Web API(中是否可能终止请求。因此,用户可以终止请求并进一步移动

ps ::我尝试了很多选项,但是我没有得到适当的解决方案。

一种解决方案是将业务逻辑放入状态bean中,然后将bean放入HTTP会话中...现在您可以访问当前使用的持久性上下文和开放交易,以便您可以致电Session.cancelQuery() ....但是此方法有一定的限制。仅在尚未返回结果集时才有效,如果此限制会损害您,请检查此答案

还有其他解决方法可以将Web客户端与业务方法同步,但这是我最喜欢的

您还需要考虑的另一件事,因为这是您的用例是引入一个新的词汇搜索引擎,例如Solr或Elasticsearch,可以通过数据库中的数据经常更新...它非常适合词汇搜索,可提供能够遇到错字错误和返回结果的能力很快

相关内容

  • 没有找到相关文章

最新更新