您好,大神们。我是jfinal的用户,有个这样的需求,就是用http请求到controller ,然后controller去发送tcp请求另外的服务器拿消息,这个过程中tcp是异步的,但是http是不等待tcp返回消息就要返回。能让http等到以后再返回吗?怎么实现啊,框架有这个功能吗?
听起来像是个服务器推送消息的功能######可以这么想啊。###### controller调用TCP的同时锁住当前线程,TCP返回后解锁当前线程,不要忘记处理超时。
整个过程会很麻烦,建议写成公共Service,加锁和解锁在Service中完成。 ######回复 @bBugyang : 就是阻塞线程######锁是用什么锁啊。让线程睡眠?还是。。。###### 我觉得你和前端的ajax整合在一起更好。
不过还是要看你的具体需求。
我们对这样的数据都走AJAX ######回复 @bBugyang : 你的正常流程还继续走。 有异步要处理的数据。 你放到一个单独的方法里。ajax去请求你的特殊长时间方法。 ajax本身就是异步处理。你就可以耐心的去等待数据显示了。######技术有限啊。。。######数据请求到controller 再请求tcp 直接开个线程 复杂点中间加个队列做缓冲######是直接开个线程去请求tcp吗?~######用阻塞式不就好了?######什么意思呢?。###### 感觉这个问题跟JFinal无关呢~
可以到其他节点问问看。同关注答案~ ######对,我也觉得和jfinal无关了。。因为之前考虑是jfinal封装了servlet等。。servlet3.0是提供异步的,不知道封装了没有,所以会这么问。######确实无关######上代码吧骚年######写个后台线程,定期通过tcp从另外一台服务器拿回消息,然后放在数据库里,jfinal访问是就直接从数据库里拿了。######google java Exchanger######Servlet 3支持async servlet,至于JFinal支不支持说不清楚。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。