Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
a466a6cf
Unverified
提交
a466a6cf
authored
5月 21, 2022
作者:
许雪里
提交者:
GitHub
5月 21, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2833 from cszxyang/polish_20220419
异常处理、日志处理及部分代码简单美化
上级
fbc02e57
d55068a5
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
32 行增加
和
40 行删除
+32
-40
XxlJobExecutor.java
...c/main/java/com/xxl/job/core/executor/XxlJobExecutor.java
+5
-3
EmbedServer.java
...re/src/main/java/com/xxl/job/core/server/EmbedServer.java
+27
-37
没有找到文件。
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java
浏览文件 @
a466a6cf
...
...
@@ -83,6 +83,7 @@ public class XxlJobExecutor {
// init executor-server
initEmbedServer
(
address
,
ip
,
port
,
appname
,
accessToken
);
}
public
void
destroy
(){
// destroy executor-server
stopEmbedServer
();
...
...
@@ -131,6 +132,7 @@ public class XxlJobExecutor {
}
}
}
public
static
List
<
AdminBiz
>
getAdminBizList
(){
return
adminBizList
;
}
...
...
@@ -251,6 +253,7 @@ public class XxlJobExecutor {
return
newJobThread
;
}
public
static
JobThread
removeJobThread
(
int
jobId
,
String
removeOldReason
){
JobThread
oldJobThread
=
jobThreadRepository
.
remove
(
jobId
);
if
(
oldJobThread
!=
null
)
{
...
...
@@ -261,9 +264,8 @@ public class XxlJobExecutor {
}
return
null
;
}
public
static
JobThread
loadJobThread
(
int
jobId
){
JobThread
jobThread
=
jobThreadRepository
.
get
(
jobId
);
return
jobThread
;
return
jobThreadRepository
.
get
(
jobId
);
}
}
xxl-job-core/src/main/java/com/xxl/job/core/server/EmbedServer.java
浏览文件 @
a466a6cf
...
...
@@ -36,10 +36,8 @@ public class EmbedServer {
public
void
start
(
final
String
address
,
final
int
port
,
final
String
appname
,
final
String
accessToken
)
{
executorBiz
=
new
ExecutorBizImpl
();
thread
=
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
// param
EventLoopGroup
bossGroup
=
new
NioEventLoopGroup
();
EventLoopGroup
workerGroup
=
new
NioEventLoopGroup
();
...
...
@@ -61,8 +59,6 @@ public class EmbedServer {
throw
new
RuntimeException
(
"xxl-job, EmbedServer bizThreadPool is EXHAUSTED!"
);
}
});
try
{
// start server
ServerBootstrap
bootstrap
=
new
ServerBootstrap
();
...
...
@@ -92,11 +88,9 @@ public class EmbedServer {
future
.
channel
().
closeFuture
().
sync
();
}
catch
(
InterruptedException
e
)
{
if
(
e
instanceof
InterruptedException
)
{
logger
.
info
(
">>>>>>>>>>> xxl-job remoting server stop."
);
}
else
{
logger
.
error
(
">>>>>>>>>>> xxl-job remoting server error."
,
e
);
}
logger
.
info
(
">>>>>>>>>>> xxl-job remoting server stop."
);
}
catch
(
Exception
e
)
{
logger
.
error
(
">>>>>>>>>>> xxl-job remoting server error."
,
e
);
}
finally
{
// stop
try
{
...
...
@@ -106,17 +100,15 @@ public class EmbedServer {
logger
.
error
(
e
.
getMessage
(),
e
);
}
}
}
});
thread
.
setDaemon
(
true
);
// daemon, service jvm, user thread leave >>> daemon leave >>> jvm leave
thread
.
setDaemon
(
true
);
// daemon, service jvm, user thread leave >>> daemon leave >>> jvm leave
thread
.
start
();
}
public
void
stop
()
throws
Exception
{
// destroy server thread
if
(
thread
!=
null
&&
thread
.
isAlive
())
{
if
(
thread
!=
null
&&
thread
.
isAlive
())
{
thread
.
interrupt
();
}
...
...
@@ -130,7 +122,7 @@ public class EmbedServer {
/**
* netty_http
*
*
<p>
* Copy from : https://github.com/xuxueli/xxl-rpc
*
* @author xuxueli 2015-11-24 22:25:15
...
...
@@ -141,6 +133,7 @@ public class EmbedServer {
private
ExecutorBiz
executorBiz
;
private
String
accessToken
;
private
ThreadPoolExecutor
bizThreadPool
;
public
EmbedHttpServerHandler
(
ExecutorBiz
executorBiz
,
String
accessToken
,
ThreadPoolExecutor
bizThreadPool
)
{
this
.
executorBiz
=
executorBiz
;
this
.
accessToken
=
accessToken
;
...
...
@@ -149,7 +142,6 @@ public class EmbedServer {
@Override
protected
void
channelRead0
(
final
ChannelHandlerContext
ctx
,
FullHttpRequest
msg
)
throws
Exception
{
// request parse
//final byte[] requestBytes = ByteBufUtil.getBytes(msg.content()); // byteBuf.toString(io.netty.util.CharsetUtil.UTF_8);
String
requestData
=
msg
.
content
().
toString
(
CharsetUtil
.
UTF_8
);
...
...
@@ -175,38 +167,38 @@ public class EmbedServer {
}
private
Object
process
(
HttpMethod
httpMethod
,
String
uri
,
String
requestData
,
String
accessTokenReq
)
{
// valid
if
(
HttpMethod
.
POST
!=
httpMethod
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"invalid request, HttpMethod not support."
);
}
if
(
uri
==
null
||
uri
.
trim
().
length
()==
0
)
{
if
(
uri
==
null
||
uri
.
trim
().
length
()
==
0
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"invalid request, uri-mapping empty."
);
}
if
(
accessToken
!=
null
&&
accessToken
.
trim
().
length
()
>
0
if
(
accessToken
!=
null
&&
accessToken
.
trim
().
length
()
>
0
&&
!
accessToken
.
equals
(
accessTokenReq
))
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"The access token is wrong."
);
}
// services mapping
try
{
if
(
"/beat"
.
equals
(
uri
))
{
return
executorBiz
.
beat
();
}
else
if
(
"/idleBeat"
.
equals
(
uri
))
{
IdleBeatParam
idleBeatParam
=
GsonTool
.
fromJson
(
requestData
,
IdleBeatParam
.
class
);
return
executorBiz
.
idleBeat
(
idleBeatParam
);
}
else
if
(
"/run"
.
equals
(
uri
))
{
TriggerParam
triggerParam
=
GsonTool
.
fromJson
(
requestData
,
TriggerParam
.
class
);
return
executorBiz
.
run
(
triggerParam
);
}
else
if
(
"/kill"
.
equals
(
uri
))
{
KillParam
killParam
=
GsonTool
.
fromJson
(
requestData
,
KillParam
.
class
);
return
executorBiz
.
kill
(
killParam
);
}
else
if
(
"/log"
.
equals
(
uri
))
{
LogParam
logParam
=
GsonTool
.
fromJson
(
requestData
,
LogParam
.
class
);
return
executorBiz
.
log
(
logParam
);
}
else
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"invalid request, uri-mapping("
+
uri
+
") not found."
);
switch
(
uri
)
{
case
"/beat"
:
return
executorBiz
.
beat
();
case
"/idleBeat"
:
IdleBeatParam
idleBeatParam
=
GsonTool
.
fromJson
(
requestData
,
IdleBeatParam
.
class
);
return
executorBiz
.
idleBeat
(
idleBeatParam
);
case
"/run"
:
TriggerParam
triggerParam
=
GsonTool
.
fromJson
(
requestData
,
TriggerParam
.
class
);
return
executorBiz
.
run
(
triggerParam
);
case
"/kill"
:
KillParam
killParam
=
GsonTool
.
fromJson
(
requestData
,
KillParam
.
class
);
return
executorBiz
.
kill
(
killParam
);
case
"/log"
:
LogParam
logParam
=
GsonTool
.
fromJson
(
requestData
,
LogParam
.
class
);
return
executorBiz
.
log
(
logParam
);
default
:
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"invalid request, uri-mapping("
+
uri
+
") not found."
);
}
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
...
...
@@ -261,6 +253,4 @@ public class EmbedServer {
// stop registry
ExecutorRegistryThread
.
getInstance
().
toStop
();
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论