中止或终止请求,这需要很长时间才能回复

web-services jpa jax-rs ejb-3.0 smartgwt

114 观看

1回复

863 作者的声誉

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

  • 我有一个场景,用户想通过输入名字,姓氏或中间人,ssn,电子邮件等来提取数据(称为搜索屏幕)
  • 数据库包含数百万的大量记录,这需要大量的时间来回复。
  • 例如,使用firstname的用户搜索需要花费大量时间来响应,在这种情况下,用户想要cancel/terminate/abort请求。
  • 是否可以在smartgwt或jaxrs(web api)中终止请求。这样用户就可以终止请求并进一步移动

PS ::我尝试了很多选项,但我没有得到正确的解决方案。

作者: mohammed sameen 的来源 发布者: 2018 年 2 月 20 日

回应 1


0

923 作者的声誉

一种解决方案是将业务逻辑放在有状态bean中并将bean放在http会话中...现在您可以访问当前使用的持久性上下文和打开的事务,因此您可以调用Session.cancelQuery()....但是这种方法有一些限制..仅当结果集尚未返回时才有效,如果此限制对您有害,请查看此答案

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

还有一件事你需要考虑,因为这是你的用例是引入一个新的词汇搜索引擎,如solr或elasticsearch,可以使用数据库中的数据进行频繁更新...它非常适合词法搜索,具有站立的能力错字错误和返回结果很快

作者: osama yaccoub 发布者: 2018 年 3 月 10 日
32x32