(-1)功能描述
写一个功能,前台发起执行请求,后台执行任务,前台可以获取执行的进度,并取得最后的执行状态。
(0)angular2 $http文件上传
这里之所以不用angular-file-upload是为了共用代码。
var time = new Date().getTime();
var obj = {
method:"POST",
url:"csvFile",
headers : { ‘Content-Type‘:undefined},
transformRequest: function() {
var formData = new FormData();
formData.append(‘file‘, $(‘#uploadBtn‘)[0].files[0]);
formData.append(‘time‘,time);
return formData;
}
}
‘Content-Type‘:undefined
transformRequest
关于这两个部分网上有一些说法,本人能力有限,只知道这么做能出效果,不知道他们说的对不对,还望高人指点
(1)如何处理多线程
因为要提供返回进度和最后状态的接口,所以后台用HashMap来存储信息,已前台传入的毫秒数做标记
取消了很多成员变量的使用,改为传参。
还用一点需要注意,因为前台发出执行请求,随后就会发出得到执行进度请求,而在返回进度方法中我写成了下面这个样子
这样写埋下了祸根,好心办了坏事,气人的是这种错误不会直观的显示出来。排查也费了好大劲。
Integer rate = rateMap.get(time) ;
if(rate !=null)
{
if(rate == 100)
{
rateMap.remove(time);
return 100;
}
else
{
return rate;
}
}
else
{
return 100;
}
最后改成当为null时返回0
(2)如何导出maven项目群、多模块项目、多个maven项目
其实只要按正常操作导出主项目(单个项目)就可以了。我百度....
(3)插入数据
这里又犯了一个错误,因为会有许多为null的数据,之前的写法是当某一个字段为null,就不会执行dao层代码
其实这里只要id不为null就好,于是更改了代码,非主要数据为null程序仍可以执行dao层代码。
原文:http://www.cnblogs.com/resolvent/p/6395238.html