Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
LFFZC
xxl-job
提交
aba36d31
X
xxl-job
项目概览
LFFZC
/
xxl-job
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
xxl-job
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
aba36d31
编写于
5月 28, 2016
作者:
X
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
任务回调逻辑优化
上级
71e12272
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
62 addition
and
32 deletion
+62
-32
xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServerHandler.java
...b/admin/core/callback/XxlJobLogCallbackServerHandler.java
+3
-3
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
+11
-11
xxl-job-core/src/main/java/com/xxl/job/core/handler/HandlerRepository.java
...main/java/com/xxl/job/core/handler/HandlerRepository.java
+30
-0
xxl-job-core/src/main/java/com/xxl/job/core/handler/HandlerThread.java
...src/main/java/com/xxl/job/core/handler/HandlerThread.java
+11
-18
xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java
...m/xxl/job/executor/service/jobhandler/DemoJobHandler.java
+7
-0
未找到文件。
xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServerHandler.java
浏览文件 @
aba36d31
...
...
@@ -28,15 +28,15 @@ public class XxlJobLogCallbackServerHandler extends AbstractHandler {
httpServletResponse
.
setCharacterEncoding
(
"UTF-8"
);
// parse param
String
trigger_log_id
=
httpServletRequest
.
getParameter
(
"trigger_
log_id"
);
String
log_id
=
httpServletRequest
.
getParameter
(
"
log_id"
);
String
status
=
httpServletRequest
.
getParameter
(
"status"
);
String
msg
=
httpServletRequest
.
getParameter
(
"msg"
);
// process
RemoteCallBack
callBack
=
new
RemoteCallBack
();
callBack
.
setStatus
(
RemoteCallBack
.
FAIL
);
if
(
StringUtils
.
isNumeric
(
trigger_
log_id
)
&&
StringUtils
.
isNotBlank
(
status
))
{
XxlJobLog
log
=
DynamicSchedulerUtil
.
xxlJobLogDao
.
load
(
Integer
.
valueOf
(
trigger_
log_id
));
if
(
StringUtils
.
isNumeric
(
log_id
)
&&
StringUtils
.
isNotBlank
(
status
))
{
XxlJobLog
log
=
DynamicSchedulerUtil
.
xxlJobLogDao
.
load
(
Integer
.
valueOf
(
log_id
));
if
(
log
!=
null
)
{
log
.
setHandleTime
(
new
Date
());
log
.
setHandleStatus
(
status
);
...
...
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
浏览文件 @
aba36d31
...
...
@@ -317,27 +317,27 @@ $(function() {
// GLUE模式开启
$
(
"
#addModal .form .ifGLUE
"
).
click
(
function
(){
var
ifGLUE
=
$
(
this
).
is
(
'
:checked
'
);
var
$
handler_name
=
$
(
"
#addModal .form input[name='handler_name
']
"
);
var
$
executorHandler
=
$
(
"
#addModal .form input[name='executorHandler
']
"
);
var
$glueSwitch
=
$
(
"
#addModal .form input[name='glueSwitch']
"
);
if
(
ifGLUE
)
{
$
handler_name
.
val
(
""
);
$
handler_name
.
attr
(
"
readonly
"
,
"
readonly
"
);
$
executorHandler
.
val
(
""
);
$
executorHandler
.
attr
(
"
readonly
"
,
"
readonly
"
);
$glueSwitch
.
val
(
1
);
}
else
{
$
handler_name
.
removeAttr
(
"
readonly
"
);
$
executorHandler
.
removeAttr
(
"
readonly
"
);
$glueSwitch
.
val
(
0
);
}
});
$
(
"
#updateModal .form .ifGLUE
"
).
click
(
function
(){
var
ifGLUE
=
$
(
this
).
is
(
'
:checked
'
);
var
$
handler_name
=
$
(
"
#updateModal .form input[name='handler_name
']
"
);
var
$
executorHandler
=
$
(
"
#updateModal .form input[name='executorHandler
']
"
);
var
$glueSwitch
=
$
(
"
#updateModal .form input[name='glueSwitch']
"
);
if
(
ifGLUE
)
{
$
handler_name
.
val
(
""
);
$
handler_name
.
attr
(
"
readonly
"
,
"
readonly
"
);
$
executorHandler
.
val
(
""
);
$
executorHandler
.
attr
(
"
readonly
"
,
"
readonly
"
);
$glueSwitch
.
val
(
1
);
}
else
{
$
handler_name
.
removeAttr
(
"
readonly
"
);
$
executorHandler
.
removeAttr
(
"
readonly
"
);
$glueSwitch
.
val
(
0
);
}
});
...
...
@@ -358,12 +358,12 @@ $(function() {
// GLUE check
var
$glueSwitch
=
$
(
"
#updateModal .form input[name='glueSwitch']
"
);
var
$
handler_name
=
$
(
"
#updateModal .form input[name='handler_name
']
"
);
var
$
executorHandler
=
$
(
"
#updateModal .form input[name='executorHandler
']
"
);
if
(
$glueSwitch
.
val
()
!=
0
)
{
$
handler_name
.
attr
(
"
readonly
"
,
"
readonly
"
);
$
executorHandler
.
attr
(
"
readonly
"
,
"
readonly
"
);
$
(
"
#updateModal .form .ifGLUE
"
).
attr
(
"
checked
"
,
true
);
}
else
{
$
handler_name
.
removeAttr
(
"
readonly
"
);
$
executorHandler
.
removeAttr
(
"
readonly
"
);
$
(
"
#updateModal .form .ifGLUE
"
).
attr
(
"
checked
"
,
false
);
}
...
...
xxl-job-core/src/main/java/com/xxl/job/core/handler/HandlerRepository.java
浏览文件 @
aba36d31
package
com.xxl.job.core.handler
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
com.xxl.job.core.handler.impl.GlueJobHandler
;
import
com.xxl.job.core.log.XxlJobFileAppender
;
import
com.xxl.job.core.util.HttpUtil
;
import
com.xxl.job.core.util.HttpUtil.RemoteCallBack
;
import
com.xxl.job.core.util.JacksonUtil
;
...
...
@@ -195,4 +198,31 @@ public class HandlerRepository {
return
JacksonUtil
.
writeValueAsString
(
callback
);
}
// ----------------------- for callback log -----------------------
private
static
LinkedBlockingQueue
<
HashMap
<
String
,
String
>>
callBackQueue
=
new
LinkedBlockingQueue
<
HashMap
<
String
,
String
>>();
static
{
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
try
{
HashMap
<
String
,
String
>
item
=
callBackQueue
.
poll
();
if
(
item
!=
null
)
{
RemoteCallBack
callback
=
null
;
try
{
callback
=
HttpUtil
.
post
(
item
.
get
(
"_address"
),
item
);
}
catch
(
Exception
e
)
{
logger
.
info
(
"HandlerThread Exception:"
,
e
);
}
logger
.
info
(
">>>>>>>>>>> xxl-job callback , params:{}, result:{}"
,
new
Object
[]{
item
,
callback
});
}
}
catch
(
Exception
e
)
{
}
}
});
}
public
static
void
pushCallBack
(
String
address
,
HashMap
<
String
,
String
>
params
){
params
.
put
(
"_address"
,
address
);
callBackQueue
.
add
(
params
);
}
}
xxl-job-core/src/main/java/com/xxl/job/core/handler/HandlerThread.java
浏览文件 @
aba36d31
...
...
@@ -15,7 +15,6 @@ import com.xxl.job.core.handler.HandlerRepository.HandlerParamEnum;
import
com.xxl.job.core.handler.IJobHandler.JobHandleStatus
;
import
com.xxl.job.core.log.XxlJobFileAppender
;
import
com.xxl.job.core.util.HttpUtil
;
import
com.xxl.job.core.util.HttpUtil.RemoteCallBack
;
/**
* handler thread
...
...
@@ -61,10 +60,10 @@ public class HandlerThread extends Thread{
Map
<
String
,
String
>
handlerData
=
handlerDataQueue
.
poll
();
if
(
handlerData
!=
null
)
{
i
=
0
;
String
trigger_
log_address
=
handlerData
.
get
(
HandlerParamEnum
.
LOG_ADDRESS
.
name
());
String
trigger_
log_id
=
handlerData
.
get
(
HandlerParamEnum
.
LOG_ID
.
name
());
String
log_address
=
handlerData
.
get
(
HandlerParamEnum
.
LOG_ADDRESS
.
name
());
String
log_id
=
handlerData
.
get
(
HandlerParamEnum
.
LOG_ID
.
name
());
String
handler_params
=
handlerData
.
get
(
HandlerParamEnum
.
EXECUTOR_PARAMS
.
name
());
logIdSet
.
remove
(
trigger_
log_id
);
logIdSet
.
remove
(
log_id
);
// parse param
String
[]
handlerParams
=
null
;
...
...
@@ -78,7 +77,7 @@ public class HandlerThread extends Thread{
JobHandleStatus
_status
=
JobHandleStatus
.
FAIL
;
String
_msg
=
null
;
try
{
XxlJobFileAppender
.
contextHolder
.
set
(
trigger_
log_id
);
XxlJobFileAppender
.
contextHolder
.
set
(
log_id
);
logger
.
info
(
">>>>>>>>>>> xxl-job handle start."
);
_status
=
handler
.
execute
(
handlerParams
);
}
catch
(
Exception
e
)
{
...
...
@@ -89,21 +88,15 @@ public class HandlerThread extends Thread{
}
logger
.
info
(
">>>>>>>>>>> xxl-job handle end, handlerParams:{}, _status:{}, _msg:{}"
,
new
Object
[]{
handlerParams
,
_status
,
_msg
});
// callback handler info
HashMap
<
String
,
String
>
params
=
new
HashMap
<
String
,
String
>();
params
.
put
(
"trigger_log_id"
,
trigger_log_id
);
params
.
put
(
"status"
,
_status
.
name
());
params
.
put
(
"msg"
,
_msg
);
RemoteCallBack
callback
=
null
;
logger
.
info
(
">>>>>>>>>>> xxl-job callback start."
);
try
{
callback
=
HttpUtil
.
post
(
HttpUtil
.
addressToUrl
(
trigger_log_address
),
params
);
}
catch
(
Exception
e
)
{
logger
.
info
(
"HandlerThread Exception:"
,
e
);
if
(!
toStop
)
{
HashMap
<
String
,
String
>
params
=
new
HashMap
<
String
,
String
>();
params
.
put
(
"log_id"
,
log_id
);
params
.
put
(
"status"
,
_status
.
name
());
params
.
put
(
"msg"
,
_msg
);
HandlerRepository
.
pushCallBack
(
HttpUtil
.
addressToUrl
(
log_address
),
params
);
}
logger
.
info
(
">>>>>>>>>>> xxl-job callback end, params:{}, result:{}"
,
new
Object
[]{
params
,
callback
.
toString
()});
}
else
{
i
++;
logIdSet
.
clear
();
...
...
xxl-job-executor-example/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java
浏览文件 @
aba36d31
package
com.xxl.job.executor.service.jobhandler
;
import
java.util.concurrent.TimeUnit
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
...
...
@@ -26,6 +28,11 @@ public class DemoJobHandler extends IJobHandler {
@Override
public
JobHandleStatus
execute
(
String
...
params
)
throws
Exception
{
logger
.
info
(
"XXL-JOB, Hello World."
);
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
System
.
out
.
println
(
i
);
TimeUnit
.
SECONDS
.
sleep
(
2
);
}
return
JobHandleStatus
.
SUCCESS
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录