Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MeterSphere
data-streaming
提交
2075eba1
D
data-streaming
项目概览
MeterSphere
/
data-streaming
9 个月 前同步成功
通知
12
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
data-streaming
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2075eba1
编写于
11月 14, 2022
作者:
C
CaptainB
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: 测试结束时清理待执行队列
上级
001753a1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
17 addition
and
17 deletion
+17
-17
src/main/java/io/metersphere/streaming/commons/utils/ReportTasks.java
...a/io/metersphere/streaming/commons/utils/ReportTasks.java
+13
-12
src/main/java/io/metersphere/streaming/engine/consumer/ReportConsumer.java
...metersphere/streaming/engine/consumer/ReportConsumer.java
+4
-5
未找到文件。
src/main/java/io/metersphere/streaming/commons/utils/ReportTasks.java
浏览文件 @
2075eba1
...
...
@@ -2,33 +2,34 @@ package io.metersphere.streaming.commons.utils;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.CopyOnWriteArraySet
;
import
java.util.concurrent.
LinkedBlockingQueu
e
;
import
java.util.concurrent.
Futur
e
;
public
class
ReportTasks
{
private
static
final
ConcurrentHashMap
<
String
,
CopyOnWriteArraySet
<
Runnable
>>
reportTasks
=
new
ConcurrentHashMap
<>();
private
static
final
LinkedBlockingQueue
<
Runnable
>
taskQueue
=
new
LinkedBlockingQueue
<>();
private
static
final
ConcurrentHashMap
<
String
,
CopyOnWriteArraySet
<
Future
<?>>>
reportTasks
=
new
ConcurrentHashMap
<>();
public
static
void
addTask
(
String
reportId
,
Runnable
task
)
{
CopyOnWriteArraySet
<
Runnable
>
tasks
=
reportTasks
.
get
(
reportId
);
public
static
void
addTask
(
String
reportId
,
Future
<?>
future
)
{
CopyOnWriteArraySet
<
Future
<?>
>
tasks
=
reportTasks
.
get
(
reportId
);
if
(
tasks
==
null
)
{
tasks
=
new
CopyOnWriteArraySet
<>();
reportTasks
.
put
(
reportId
,
tasks
);
}
tasks
.
add
(
task
);
tasks
.
add
(
future
);
LogUtil
.
info
(
"添加任务: reportId: {}, taskSize: {}"
,
reportId
,
tasks
.
size
());
}
public
static
void
clearTasks
(
String
reportId
)
{
taskQueue
.
removeAll
(
getTasks
(
reportId
));
for
(
Future
<?>
task
:
getTasks
(
reportId
))
{
try
{
task
.
cancel
(
true
);
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
"取消任务失败: "
,
e
);
}
}
reportTasks
.
remove
(
reportId
);
LogUtil
.
info
(
"清理任务: reportId: {}"
,
reportId
);
}
private
static
CopyOnWriteArraySet
<
Runnable
>
getTasks
(
String
reportId
)
{
private
static
CopyOnWriteArraySet
<
Future
<?>
>
getTasks
(
String
reportId
)
{
return
reportTasks
.
getOrDefault
(
reportId
,
new
CopyOnWriteArraySet
<>());
}
public
static
LinkedBlockingQueue
<
Runnable
>
getTaskQueue
()
{
return
taskQueue
;
}
}
src/main/java/io/metersphere/streaming/engine/consumer/ReportConsumer.java
浏览文件 @
2075eba1
...
...
@@ -31,7 +31,7 @@ public class ReportConsumer {
private
final
ThreadPoolExecutor
executor
=
new
ThreadPoolExecutor
(
20
,
20
,
0L
,
TimeUnit
.
MILLISECONDS
,
ReportTasks
.
getTaskQueue
());
new
LinkedBlockingQueue
<>
());
private
final
ThreadPoolExecutor
saveExecutor
=
new
ThreadPoolExecutor
(
30
,
30
,
0L
,
TimeUnit
.
MILLISECONDS
,
...
...
@@ -57,11 +57,10 @@ public class ReportConsumer {
}
String
key
=
reportId
+
"_"
+
resourceIndex
;
LogUtil
.
info
(
"处理报告: reportId_resourceIndex: {}"
,
key
);
Runnable
task
=
getRealtimeTask
(
content
,
reportId
,
resourceIndex
);
executor
.
submit
(
task
);
// 保存每个报告的任务队列
ReportTasks
.
addTask
(
reportId
,
task
);
Runnable
task
=
getRealtimeTask
(
content
,
reportId
,
resourceIndex
);
Future
<?>
future
=
executor
.
submit
(
task
);
ReportTasks
.
addTask
(
reportId
,
future
);
}
private
Runnable
getRealtimeTask
(
List
<
ReportResult
>
content
,
String
reportId
,
Integer
resourceIndex
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录