sys0613
2020-01-30 15:42:23
等
SSM框架后台如何异步操作?
SSM框架,后台接收前台数据,要生成文件并FTP上传到服务器A,
只能接收前台数据以后,启动新线程,给前端返回成功页面呗?还有什么好的操作方式么?
谢谢了,就是ssmkua框架,别建议用别的框架什么的。前端不能等待文件上传以后再返回。
就是需要耗时ftp传文件,还要给前端即时返回响应。大家有什么建议,谢谢了。
评论
所有回答列表(1)
大反派 LV10
2020年2月28日
如果要异步操作,就是请求后台后,让后台单独启动一个线程来处理数据生成文件,来减小controller的压力有很多种方法,java.util.concurrent.Callable就能实现。
import java.util.concurrent.Callable; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.async.DeferredResult; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.utility.RandomString; /** * * @author peter * */ @RestController @Slf4j public class AsyncController { @Autowired private MockQueue mockQueue; @Autowired private DeferredResultHolder deferredResultHolder; @GetMapping("/order") public Callable<String> order() throws Exception { log.info("主线程开始"); Callable<String> callable = new Callable<String>() { @Override public String call() throws Exception { log.info("副线程开始"); Thread.sleep(1000); log.info("副线程返回"); return "success"; } }; log.info("主线程返回"); return callable; } }
至于前端,应为上传文件是一个过程,一定是要等待的,但是可以用ajax来提交,这样就不会阻塞页面,用户只要不刷新页面,在当前也页面想怎么操作都行。
DeferredResult是另一种方法。
可能还有其他骚操作,就太复杂了,不提了。
- 等 最代码怎么获取牛币啊?
- 完 谁来告诉我最代码上线的时间,答对者给5牛币,先来先得
- 等 牛友们,大家好,你们做程序员多久了?现在还好吗?
- 完 在微信打开的页面里进行app下载
- 等 最代码2014年欢乐聚声会
- 完 mysql如何查询表数据并且对3个字段降序的SQL?
- 完 最代码牛币机制改革
- 完 成功的在bae上使用了自定义运行环境 jetty+nginx的组合,大家对jetty+nginx优化有哪些心得?
- 完 进来分享一下各位牛牛是如何加入最代码大家庭的?
- 等 为什么java BufferedImage类处理大图直接抛出内存溢出的异常?
- 等 最代码是否开发手机app客户端?
- 完 java程序员学习哪些java的技术?java有哪些框架?都能做哪方面的开发?
- 等 php格式网页文件怎么运行?
- 等 Java volatile值获取的问题
- 等 前端vue,拦截了登录后台后,返回的token,requests拦截token,但是发送请求的时候,就出现跨越异常
- 等 大专本科计算机科班怎么找到Java工作?
- 等 eclipse怎么把三个java swing游戏项目合成一个项目?
- 完 伙伴们,大家都有什么好的解压方式么,分享一下~
- 完 三四线城市,6、7k,运维工作,索然无味,想去辞职上培训,各位牛牛有什么建议嘛
- 等 jsp页面输入中文变成问号
- 等 JPA在线上运行一段时间后报错Caused by: java.lang.IncompatibleClassChangeError: null
- 等 PHP 这个规则用preg_match_all怎么写
- 等 大佬们,有没有知道Alfresco如何配置LDAP登录呢?
- 等 php的install目录是框架带的吗?
相关问答
- 完 ssm框架实现登录的问题
- 完 ssm修改dao方法的问题
- 完 SSM框架项目,后台的powerid在前端为什么取不到值?
- 等 SSM中既然使用了Mybatis,为什么还要使用SpringJdbc?
- 完 ssm中加上PageHelper.startPage(pagenum,pagesize)后为什么抛出如下错误?
- 完 有没有大神研究快速开发框架,基于SSM框架???
- 等 ssm框架为什么在Intellij Idea下返回数据为空?
- 等 ssm抛出如下异常:Invocation of init method failed; nested exception is java.lang.IllegalStateException: Duplicate application configs,该如何解决?
- 等 ssm框架搭建时需要配置文件有几种?需要注意那些?
- 等 SSM(Spring+SpringMVC+MyBatis)整合怎么提取公共CRUD减少代码编写量?
- 等 SSM框架的基础上,权限管理的模块用哪种技术做好实现?
- 等 ssm框架访问为什么返回404?