Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
8360707b
提交
8360707b
authored
4月 13, 2020
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
biz thread pool
上级
71a1dbd8
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
30 行增加
和
3 行删除
+30
-3
EmbedServer.java
...re/src/main/java/com/xxl/job/core/server/EmbedServer.java
+30
-3
没有找到文件。
xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java
浏览文件 @
8360707b
...
@@ -20,7 +20,7 @@ import io.netty.util.CharsetUtil;
...
@@ -20,7 +20,7 @@ import io.netty.util.CharsetUtil;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
java.util.concurrent.
TimeUnit
;
import
java.util.concurrent.
*
;
/**
/**
* Copy from : https://github.com/xuxueli/xxl-rpc
* Copy from : https://github.com/xuxueli/xxl-rpc
...
@@ -43,6 +43,25 @@ public class EmbedServer {
...
@@ -43,6 +43,25 @@ public class EmbedServer {
// param
// param
EventLoopGroup
bossGroup
=
new
NioEventLoopGroup
();
EventLoopGroup
bossGroup
=
new
NioEventLoopGroup
();
EventLoopGroup
workerGroup
=
new
NioEventLoopGroup
();
EventLoopGroup
workerGroup
=
new
NioEventLoopGroup
();
ThreadPoolExecutor
bizThreadPool
=
new
ThreadPoolExecutor
(
0
,
200
,
60L
,
TimeUnit
.
SECONDS
,
new
LinkedBlockingQueue
<
Runnable
>(
2000
),
new
ThreadFactory
()
{
@Override
public
Thread
newThread
(
Runnable
r
)
{
return
new
Thread
(
r
,
"xxl-rpc, EmbedServer bizThreadPool-"
+
r
.
hashCode
());
}
},
new
RejectedExecutionHandler
()
{
@Override
public
void
rejectedExecution
(
Runnable
r
,
ThreadPoolExecutor
executor
)
{
throw
new
RuntimeException
(
"xxl-job, EmbedServer bizThreadPool is EXHAUSTED!"
);
}
});
try
{
try
{
// start server
// start server
...
@@ -56,7 +75,7 @@ public class EmbedServer {
...
@@ -56,7 +75,7 @@ public class EmbedServer {
.
addLast
(
new
IdleStateHandler
(
0
,
0
,
30
*
3
,
TimeUnit
.
SECONDS
))
// beat 3N, close if idle
.
addLast
(
new
IdleStateHandler
(
0
,
0
,
30
*
3
,
TimeUnit
.
SECONDS
))
// beat 3N, close if idle
.
addLast
(
new
HttpServerCodec
())
.
addLast
(
new
HttpServerCodec
())
.
addLast
(
new
HttpObjectAggregator
(
5
*
1024
*
1024
))
// merge request & reponse to FULL
.
addLast
(
new
HttpObjectAggregator
(
5
*
1024
*
1024
))
// merge request & reponse to FULL
.
addLast
(
new
EmbedHttpServerHandler
(
executorBiz
,
accessToken
));
.
addLast
(
new
EmbedHttpServerHandler
(
executorBiz
,
accessToken
,
bizThreadPool
));
}
}
})
})
.
childOption
(
ChannelOption
.
SO_KEEPALIVE
,
true
);
.
childOption
(
ChannelOption
.
SO_KEEPALIVE
,
true
);
...
@@ -121,9 +140,11 @@ public class EmbedServer {
...
@@ -121,9 +140,11 @@ public class EmbedServer {
private
ExecutorBiz
executorBiz
;
private
ExecutorBiz
executorBiz
;
private
String
accessToken
;
private
String
accessToken
;
public
EmbedHttpServerHandler
(
ExecutorBiz
executorBiz
,
String
accessToken
)
{
private
ThreadPoolExecutor
bizThreadPool
;
public
EmbedHttpServerHandler
(
ExecutorBiz
executorBiz
,
String
accessToken
,
ThreadPoolExecutor
bizThreadPool
)
{
this
.
executorBiz
=
executorBiz
;
this
.
executorBiz
=
executorBiz
;
this
.
accessToken
=
accessToken
;
this
.
accessToken
=
accessToken
;
this
.
bizThreadPool
=
bizThreadPool
;
}
}
@Override
@Override
...
@@ -137,6 +158,10 @@ public class EmbedServer {
...
@@ -137,6 +158,10 @@ public class EmbedServer {
boolean
keepAlive
=
HttpUtil
.
isKeepAlive
(
msg
);
boolean
keepAlive
=
HttpUtil
.
isKeepAlive
(
msg
);
String
accessTokenReq
=
msg
.
headers
().
get
(
XxlJobRemotingUtil
.
XXL_JOB_ACCESS_TOKEN
);
String
accessTokenReq
=
msg
.
headers
().
get
(
XxlJobRemotingUtil
.
XXL_JOB_ACCESS_TOKEN
);
// invoke
bizThreadPool
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
// do invoke
// do invoke
Object
responseObj
=
process
(
httpMethod
,
uri
,
requestData
,
accessTokenReq
);
Object
responseObj
=
process
(
httpMethod
,
uri
,
requestData
,
accessTokenReq
);
...
@@ -146,6 +171,8 @@ public class EmbedServer {
...
@@ -146,6 +171,8 @@ public class EmbedServer {
// write response
// write response
writeResponse
(
ctx
,
keepAlive
,
responseJson
);
writeResponse
(
ctx
,
keepAlive
,
responseJson
);
}
}
});
}
private
Object
process
(
HttpMethod
httpMethod
,
String
uri
,
String
requestData
,
String
accessTokenReq
)
{
private
Object
process
(
HttpMethod
httpMethod
,
String
uri
,
String
requestData
,
String
accessTokenReq
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论