Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
L
ldmap-download
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
王健
ldmap-download
Commits
8b147486
提交
8b147486
authored
4月 15, 2020
作者:
张航
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改了TimerTask无法重复使用的问题
上级
1aaa0158
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
41 行增加
和
9 行删除
+41
-9
SocketResultData.java
...va/com/comleader/ldmapdownload/bean/SocketResultData.java
+23
-0
DownMapService.java
...a/com/comleader/ldmapdownload/service/DownMapService.java
+9
-4
DownLoadMapWebSocket.java
.../comleader/ldmapdownload/socket/DownLoadMapWebSocket.java
+7
-3
download-map.properties
src/main/resources/config/download-map.properties
+2
-2
没有找到文件。
src/main/java/com/comleader/ldmapdownload/bean/SocketResultData.java
浏览文件 @
8b147486
...
@@ -4,6 +4,8 @@ import com.comleader.ldmapdownload.util.OperationTypeEnum;
...
@@ -4,6 +4,8 @@ import com.comleader.ldmapdownload.util.OperationTypeEnum;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Timer
;
import
java.util.TimerTask
;
/**
/**
* @ClassName ResultData
* @ClassName ResultData
...
@@ -77,4 +79,25 @@ public class SocketResultData implements Serializable {
...
@@ -77,4 +79,25 @@ public class SocketResultData implements Serializable {
public
void
setBody
(
Map
<
String
,
Object
>
body
)
{
public
void
setBody
(
Map
<
String
,
Object
>
body
)
{
this
.
body
=
body
;
this
.
body
=
body
;
}
}
//public static void main(String[] args) throws InterruptedException {
//
// Timer timer = new Timer();
// timer.schedule(new TimerTask() {
// @Override
// public void run() {
// System.out.println("timer start");
// }
// }, 0, 1000);
// Thread.sleep(1000);
// timer.cancel();
// timer.cancel();
// timer = new Timer();
// timer.schedule(new TimerTask() {
// @Override
// public void run() {
// System.out.println("after cancel");
// }
// }, 1000, 2000);
//}
}
}
src/main/java/com/comleader/ldmapdownload/service/DownMapService.java
浏览文件 @
8b147486
...
@@ -59,6 +59,10 @@ public class DownMapService {
...
@@ -59,6 +59,10 @@ public class DownMapService {
public
static
volatile
boolean
isBusy
=
false
;
// 正在下载
public
static
volatile
boolean
isBusy
=
false
;
// 正在下载
private
Timer
scheduleTimer
;
private
Timer
speedTimer
;
/**
/**
* @param body
* @param body
* @param session
* @param session
...
@@ -111,7 +115,7 @@ public class DownMapService {
...
@@ -111,7 +115,7 @@ public class DownMapService {
}
}
}
}
// 启动一个定时器,每秒刷新下载速度
// 启动一个定时器,每秒刷新下载速度
Timer
speedTimer
=
new
Timer
();
speedTimer
=
new
Timer
();
speedTimer
.
schedule
(
new
TimerTask
()
{
speedTimer
.
schedule
(
new
TimerTask
()
{
@Override
@Override
public
void
run
()
{
public
void
run
()
{
...
@@ -123,7 +127,7 @@ public class DownMapService {
...
@@ -123,7 +127,7 @@ public class DownMapService {
}
}
},
1000
,
1000
);
},
1000
,
1000
);
// 刷新进度
// 刷新进度
Timer
scheduleTimer
=
new
Timer
();
scheduleTimer
=
new
Timer
();
scheduleTimer
.
schedule
(
new
TimerTask
()
{
scheduleTimer
.
schedule
(
new
TimerTask
()
{
@Override
@Override
public
void
run
()
{
public
void
run
()
{
...
@@ -149,8 +153,11 @@ public class DownMapService {
...
@@ -149,8 +153,11 @@ public class DownMapService {
countSuccessFile
++;
countSuccessFile
++;
System
.
out
.
println
(
result
);
System
.
out
.
println
(
result
);
}
}
// 完成标志
this
.
finished
=
true
;
// 结束定时器
// 结束定时器
speedTimer
.
cancel
();
speedTimer
.
cancel
();
scheduleTimer
.
cancel
();
long
end
=
System
.
currentTimeMillis
();
long
end
=
System
.
currentTimeMillis
();
// 封装执行结果
// 封装执行结果
// 失败的个数
// 失败的个数
...
@@ -159,8 +166,6 @@ public class DownMapService {
...
@@ -159,8 +166,6 @@ public class DownMapService {
resBody
.
put
(
"totalTime"
,
(
end
-
start
)
/
1000
+
" s"
);
resBody
.
put
(
"totalTime"
,
(
end
-
start
)
/
1000
+
" s"
);
// 总文件大小
// 总文件大小
resBody
.
put
(
"totalSize"
,
CLStringUtil
.
getDownTotalSize
());
resBody
.
put
(
"totalSize"
,
CLStringUtil
.
getDownTotalSize
());
// 完成标志
this
.
finished
=
true
;
log
.
info
(
"falidNum > "
+
errResults
.
size
());
log
.
info
(
"falidNum > "
+
errResults
.
size
());
log
.
info
(
"totalTime > "
+(
end
-
start
)
/
1000
+
" s"
);
log
.
info
(
"totalTime > "
+(
end
-
start
)
/
1000
+
" s"
);
log
.
info
(
"totalSize > "
+
CLStringUtil
.
getDownTotalSize
());
log
.
info
(
"totalSize > "
+
CLStringUtil
.
getDownTotalSize
());
...
...
src/main/java/com/comleader/ldmapdownload/socket/DownLoadMapWebSocket.java
浏览文件 @
8b147486
...
@@ -44,6 +44,10 @@ public class DownLoadMapWebSocket {
...
@@ -44,6 +44,10 @@ public class DownLoadMapWebSocket {
private
String
name
;
// 当前连接的客户端的用户名
private
String
name
;
// 当前连接的客户端的用户名
private
Timer
scheduleTimer
;
private
Timer
speedTimer
;
/*
/*
* @description: websocket无法通过@Autowried注入Service,需要通过如下方式进行解决
* @description: websocket无法通过@Autowried注入Service,需要通过如下方式进行解决
**/
**/
...
@@ -166,14 +170,14 @@ public class DownLoadMapWebSocket {
...
@@ -166,14 +170,14 @@ public class DownLoadMapWebSocket {
private
void
downLoadMap
(
SocketResultData
socketData
,
Session
session
)
throws
Exception
{
private
void
downLoadMap
(
SocketResultData
socketData
,
Session
session
)
throws
Exception
{
// 创建定时任务向前端发送速度\进度
// 创建定时任务向前端发送速度\进度
Timer
speedTimer
=
new
Timer
();
speedTimer
=
new
Timer
();
// 每隔三秒汇报一次
// 每隔三秒汇报一次
speedTimer
.
schedule
(
new
TimerTask
()
{
speedTimer
.
schedule
(
new
TimerTask
()
{
@Override
@Override
public
void
run
()
{
public
void
run
()
{
// 发送了停止命令或者已经完成
// 发送了停止命令或者已经完成
if
(
DownMapService
.
stoped
||
DownMapService
.
finished
)
{
if
(
DownMapService
.
stoped
||
DownMapService
.
finished
)
{
speedTimer
.
cancel
();
speedTimer
.
purge
();
}
else
{
}
else
{
// 发送速度
// 发送速度
SocketResultData
speed
=
new
SocketResultData
(
OperationTypeEnum
.
SYS_SUCCESS
,
"下载速度"
+
DownMapService
.
speed
+
"张/s"
,
null
);
SocketResultData
speed
=
new
SocketResultData
(
OperationTypeEnum
.
SYS_SUCCESS
,
"下载速度"
+
DownMapService
.
speed
+
"张/s"
,
null
);
...
@@ -182,7 +186,7 @@ public class DownLoadMapWebSocket {
...
@@ -182,7 +186,7 @@ public class DownLoadMapWebSocket {
}
}
},
1000
,
1000
);
},
1000
,
1000
);
// 创建定时任务向前端发送进度
// 创建定时任务向前端发送进度
Timer
scheduleTimer
=
new
Timer
();
scheduleTimer
=
new
Timer
();
// 每隔0.2秒汇报一次
// 每隔0.2秒汇报一次
scheduleTimer
.
schedule
(
new
TimerTask
()
{
scheduleTimer
.
schedule
(
new
TimerTask
()
{
@Override
@Override
...
...
src/main/resources/config/download-map.properties
浏览文件 @
8b147486
# 下载地图的保存路径
# 下载地图的保存路径
file.basepath
=
E:/em-download
map
file.basepath
=
G:/em-
map
# 项目的发布地址
# 项目的发布地址
file.mapImgPath
=
E:/em-download
map
file.mapImgPath
=
G:/em-
map
# 下载地图的地址
# 下载地图的地址
#天地图服务器t0-t8间选一个
#天地图服务器t0-t8间选一个
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论