Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
b590a65c
提交
b590a65c
authored
3月 02, 2017
作者:
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Coding
上级
86dea7ff
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
132 行增加
和
76 行删除
+132
-76
tables_xxl_job.sql
db/tables_xxl_job.sql
+3
-3
JobLogController.java
...n/java/com/xxl/job/admin/controller/JobLogController.java
+3
-3
AdminBizImpl.java
...rc/main/java/com/xxl/job/admin/core/biz/AdminBizImpl.java
+10
-7
RemoteHttpJobBean.java
...ava/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
+1
-1
XxlJobLog.java
...src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java
+37
-14
JobMonitorHelper.java
.../java/com/xxl/job/admin/core/thread/JobMonitorHelper.java
+5
-5
XxlJobLogMapper.xml
...min/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
+6
-6
AdminBiz.java
...job-core/src/main/java/com/xxl/job/core/biz/AdminBiz.java
+2
-2
HandleCallbackParam.java
.../java/com/xxl/job/core/biz/model/HandleCallbackParam.java
+57
-0
TriggerParam.java
...rc/main/java/com/xxl/job/core/biz/model/TriggerParam.java
+0
-21
JobThread.java
...core/src/main/java/com/xxl/job/core/thread/JobThread.java
+4
-9
TriggerCallbackThread.java
...n/java/com/xxl/job/core/thread/TriggerCallbackThread.java
+4
-5
没有找到文件。
db/tables_xxl_job.sql
浏览文件 @
b590a65c
...
...
@@ -165,7 +165,7 @@ CREATE TABLE XXL_JOB_QRTZ_TRIGGER_INFO (
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
;
CREATE
TABLE
XXL_JOB_QRTZ_TRIGGER_LOG
(
CREATE
TABLE
`XXL_JOB_QRTZ_TRIGGER_LOG`
(
`id`
int
(
11
)
NOT
NULL
AUTO_INCREMENT
,
`job_group`
int
(
11
)
NOT
NULL
COMMENT
'任务组'
,
`job_name`
varchar
(
255
)
NOT
NULL
COMMENT
'任务名'
,
...
...
@@ -173,10 +173,10 @@ CREATE TABLE XXL_JOB_QRTZ_TRIGGER_LOG (
`executor_handler`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'执行器任务handler'
,
`executor_param`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'executor_param'
,
`trigger_time`
datetime
DEFAULT
NULL
COMMENT
'调度-时间'
,
`trigger_
status
`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'调度-结果'
,
`trigger_
code
`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'调度-结果'
,
`trigger_msg`
varchar
(
2048
)
DEFAULT
NULL
COMMENT
'调度-日志'
,
`handle_time`
datetime
DEFAULT
NULL
COMMENT
'执行-时间'
,
`handle_
status
`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'执行-状态'
,
`handle_
code
`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'执行-状态'
,
`handle_msg`
varchar
(
2048
)
DEFAULT
NULL
COMMENT
'执行-日志'
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
;
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
浏览文件 @
b590a65c
...
...
@@ -97,7 +97,7 @@ public class JobLogController {
if
(
log
==
null
)
{
return
new
ReturnT
<
String
>(
500
,
"查看执行日志失败: 参数异常"
);
}
if
(
!((
ReturnT
.
SUCCESS_CODE
+
""
).
equals
(
log
.
getTriggerStatus
())
||
StringUtils
.
isNotBlank
(
log
.
getHandleStatus
())
))
{
if
(
ReturnT
.
SUCCESS_CODE
!=
log
.
getTriggerCode
(
))
{
return
new
ReturnT
<
String
>(
500
,
"查看执行日志失败: 任务发起调度失败,无法查看执行日志"
);
}
...
...
@@ -134,7 +134,7 @@ public class JobLogController {
if
(
log
==
null
||
jobInfo
==
null
)
{
return
new
ReturnT
<
String
>(
500
,
"参数异常"
);
}
if
(
!(
ReturnT
.
SUCCESS_CODE
+
""
).
equals
(
log
.
getTriggerStatus
()
))
{
if
(
ReturnT
.
SUCCESS_CODE
!=
log
.
getTriggerCode
(
))
{
return
new
ReturnT
<
String
>(
500
,
"调度失败,无法终止日志"
);
}
...
...
@@ -149,7 +149,7 @@ public class JobLogController {
ReturnT
<
String
>
runResult
=
executorBiz
.
kill
(
String
.
valueOf
(
log
.
getJobGroup
()),
log
.
getJobName
());
if
(
ReturnT
.
SUCCESS_CODE
==
runResult
.
getCode
())
{
log
.
setHandle
Status
(
ReturnT
.
SUCCESS_CODE
+
""
);
log
.
setHandle
Code
(
ReturnT
.
SUCCESS_CODE
);
log
.
setHandleMsg
(
"人为操作主动终止"
);
log
.
setHandleTime
(
new
Date
());
xxlJobLogDao
.
updateHandleInfo
(
log
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/biz/AdminBizImpl.java
浏览文件 @
b590a65c
...
...
@@ -4,8 +4,8 @@ import com.xxl.job.admin.core.model.XxlJobInfo;
import
com.xxl.job.admin.core.model.XxlJobLog
;
import
com.xxl.job.admin.core.schedule.DynamicSchedulerUtil
;
import
com.xxl.job.core.biz.AdminBiz
;
import
com.xxl.job.core.biz.model.HandleCallbackParam
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.TriggerParam
;
import
org.apache.commons.lang.StringUtils
;
import
org.quartz.SchedulerException
;
import
org.slf4j.Logger
;
...
...
@@ -21,17 +21,17 @@ public class AdminBizImpl implements AdminBiz {
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
AdminBizImpl
.
class
);
@Override
public
ReturnT
<
String
>
callback
(
TriggerParam
trigger
Param
)
{
public
ReturnT
<
String
>
callback
(
HandleCallbackParam
handleCallback
Param
)
{
// valid log item
XxlJobLog
log
=
DynamicSchedulerUtil
.
xxlJobLogDao
.
load
(
trigger
Param
.
getLogId
());
XxlJobLog
log
=
DynamicSchedulerUtil
.
xxlJobLogDao
.
load
(
handleCallback
Param
.
getLogId
());
if
(
log
==
null
)
{
return
new
ReturnT
(
ReturnT
.
FAIL_CODE
,
"log item not found."
);
}
// trigger success, to trigger child job, and avoid repeat trigger child job
String
childTriggerMsg
=
null
;
if
(
(
ReturnT
.
SUCCESS_CODE
+
""
).
equals
(
triggerParam
.
getStatus
())
&&
!(
ReturnT
.
SUCCESS_CODE
+
""
).
equals
(
log
.
getHandleStatus
()
))
{
if
(
ReturnT
.
SUCCESS_CODE
==
handleCallbackParam
.
getCode
()
&&
ReturnT
.
SUCCESS_CODE
!=
log
.
getHandleCode
(
))
{
XxlJobInfo
xxlJobInfo
=
DynamicSchedulerUtil
.
xxlJobInfoDao
.
load
(
log
.
getJobGroup
(),
log
.
getJobName
());
if
(
xxlJobInfo
!=
null
&&
StringUtils
.
isNotBlank
(
xxlJobInfo
.
getChildJobKey
()))
{
childTriggerMsg
=
"<hr>"
;
...
...
@@ -65,8 +65,11 @@ public class AdminBizImpl implements AdminBiz {
// handle msg
StringBuffer
handleMsg
=
new
StringBuffer
();
if
(
triggerParam
.
getMsg
()
!=
null
)
{
handleMsg
.
append
(
"执行备注:"
).
append
(
triggerParam
.
getMsg
());
if
(
log
.
getHandleMsg
()!=
null
)
{
handleMsg
.
append
(
log
.
getHandleMsg
()).
append
(
"<br>"
);
}
if
(
handleCallbackParam
.
getMsg
()
!=
null
)
{
handleMsg
.
append
(
"执行备注:"
).
append
(
handleCallbackParam
.
getMsg
());
}
if
(
childTriggerMsg
!=
null
)
{
handleMsg
.
append
(
"<br>子任务触发备注:"
).
append
(
childTriggerMsg
);
...
...
@@ -74,7 +77,7 @@ public class AdminBizImpl implements AdminBiz {
// success, save log
log
.
setHandleTime
(
new
Date
());
log
.
setHandle
Status
(
triggerParam
.
getStatus
());
log
.
setHandle
Code
(
handleCallbackParam
.
getCode
());
log
.
setHandleMsg
(
handleMsg
.
toString
());
DynamicSchedulerUtil
.
xxlJobLogDao
.
updateHandleInfo
(
log
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
浏览文件 @
b590a65c
...
...
@@ -80,7 +80,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
logger
.
info
(
">>>>>>>>>>> xxl-job failoverTrigger response, jobId:{}, responseModel:{}"
,
jobLog
.
getId
(),
responseModel
.
toString
());
// update trigger info 2/2
jobLog
.
setTrigger
Status
(
responseModel
.
getCode
()+
""
);
jobLog
.
setTrigger
Code
(
responseModel
.
getCode
()
);
jobLog
.
setTriggerMsg
(
responseModel
.
getMsg
());
DynamicSchedulerUtil
.
xxlJobLogDao
.
updateTriggerInfo
(
jobLog
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java
浏览文件 @
b590a65c
...
...
@@ -14,91 +14,114 @@ public class XxlJobLog {
private
int
jobGroup
;
private
String
jobName
;
private
String
executorAddress
;
// 执行器地址,有多个则逗号分隔
private
String
executorHandler
;
// 执行器Handler
private
String
executorParam
;
// 执行器,任务参数
// execute info
private
String
executorAddress
;
private
String
executorHandler
;
private
String
executorParam
;
// trigger info
private
Date
triggerTime
;
private
String
triggerStatus
;
private
int
triggerCode
;
private
String
triggerMsg
;
// handle info
private
Date
handleTime
;
private
String
handleStatus
;
private
int
handleCode
;
private
String
handleMsg
;
public
int
getId
()
{
return
id
;
}
public
void
setId
(
int
id
)
{
this
.
id
=
id
;
}
public
int
getJobGroup
()
{
return
jobGroup
;
}
public
void
setJobGroup
(
int
jobGroup
)
{
this
.
jobGroup
=
jobGroup
;
}
public
String
getJobName
()
{
return
jobName
;
}
public
void
setJobName
(
String
jobName
)
{
this
.
jobName
=
jobName
;
}
public
String
getExecutorAddress
()
{
return
executorAddress
;
}
public
void
setExecutorAddress
(
String
executorAddress
)
{
this
.
executorAddress
=
executorAddress
;
}
public
String
getExecutorHandler
()
{
return
executorHandler
;
}
public
void
setExecutorHandler
(
String
executorHandler
)
{
this
.
executorHandler
=
executorHandler
;
}
public
String
getExecutorParam
()
{
return
executorParam
;
}
public
void
setExecutorParam
(
String
executorParam
)
{
this
.
executorParam
=
executorParam
;
}
public
Date
getTriggerTime
()
{
return
triggerTime
;
}
public
void
setTriggerTime
(
Date
triggerTime
)
{
this
.
triggerTime
=
triggerTime
;
}
public
String
getTriggerStatus
()
{
return
triggerStatus
;
public
int
getTriggerCode
()
{
return
triggerCode
;
}
public
void
setTriggerStatus
(
String
triggerStatus
)
{
this
.
triggerStatus
=
triggerStatus
;
public
void
setTriggerCode
(
int
triggerCode
)
{
this
.
triggerCode
=
triggerCode
;
}
public
String
getTriggerMsg
()
{
return
triggerMsg
;
}
public
void
setTriggerMsg
(
String
triggerMsg
)
{
this
.
triggerMsg
=
triggerMsg
;
}
public
Date
getHandleTime
()
{
return
handleTime
;
}
public
void
setHandleTime
(
Date
handleTime
)
{
this
.
handleTime
=
handleTime
;
}
public
String
getHandleStatus
()
{
return
handleStatus
;
public
int
getHandleCode
()
{
return
handleCode
;
}
public
void
setHandleStatus
(
String
handleStatus
)
{
this
.
handleStatus
=
handleStatus
;
public
void
setHandleCode
(
int
handleCode
)
{
this
.
handleCode
=
handleCode
;
}
public
String
getHandleMsg
()
{
return
handleMsg
;
}
public
void
setHandleMsg
(
String
handleMsg
)
{
this
.
handleMsg
=
handleMsg
;
}
}
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java
浏览文件 @
b590a65c
...
...
@@ -6,7 +6,6 @@ import com.xxl.job.admin.core.model.XxlJobLog;
import
com.xxl.job.admin.core.schedule.DynamicSchedulerUtil
;
import
com.xxl.job.admin.core.util.MailUtil
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -41,7 +40,8 @@ public class JobMonitorHelper {
logger
.
info
(
">>>>>>>>>>> job monitor heat success, JobLogId:{}"
,
jobLogId
);
XxlJobLog
log
=
DynamicSchedulerUtil
.
xxlJobLogDao
.
load
(
jobLogId
);
if
(
log
!=
null
)
{
if
((
ReturnT
.
SUCCESS_CODE
+
""
).
equals
(
log
.
getTriggerStatus
())
&&
StringUtils
.
isBlank
(
log
.
getHandleStatus
()))
{
if
(
ReturnT
.
SUCCESS_CODE
==
log
.
getTriggerCode
()
&&
log
.
getHandleCode
()==
0
)
{
// running
try
{
TimeUnit
.
SECONDS
.
sleep
(
10
);
}
catch
(
InterruptedException
e
)
{
...
...
@@ -49,16 +49,16 @@ public class JobMonitorHelper {
}
JobMonitorHelper
.
monitor
(
jobLogId
);
}
if
(
(
ReturnT
.
SUCCESS_CODE
+
""
).
equals
(
log
.
getTriggerStatus
())
&&
(
ReturnT
.
SUCCESS_CODE
+
""
).
equals
(
log
.
getHandleStatus
()
))
{
if
(
ReturnT
.
SUCCESS_CODE
==
log
.
getTriggerCode
()
&&
ReturnT
.
SUCCESS_CODE
==
log
.
getHandleCode
(
))
{
// pass
}
if
(
(
ReturnT
.
FAIL
+
""
).
equals
(
log
.
getTriggerStatus
())
||
(
ReturnT
.
FAIL
+
""
).
equals
(
log
.
getHandleStatus
()
))
{
if
(
ReturnT
.
FAIL_CODE
==
log
.
getTriggerCode
()||
ReturnT
.
FAIL_CODE
==
log
.
getHandleCode
(
))
{
XxlJobInfo
info
=
DynamicSchedulerUtil
.
xxlJobInfoDao
.
load
(
log
.
getJobGroup
(),
log
.
getJobName
());
if
(
info
!=
null
&&
info
.
getAlarmEmail
()!=
null
&&
info
.
getAlarmEmail
().
trim
().
length
()>
0
)
{
Set
<
String
>
emailSet
=
new
HashSet
<
String
>(
Arrays
.
asList
(
info
.
getAlarmEmail
().
split
(
","
)));
for
(
String
email:
emailSet
)
{
String
title
=
"《调度监控报警
-任务调度中心XXL-JOB》
"
;
String
title
=
"《调度监控报警
》(任务调度中心XXL-JOB)
"
;
XxlJobGroup
group
=
DynamicSchedulerUtil
.
xxlJobGroupDao
.
load
(
Integer
.
valueOf
(
info
.
getJobGroup
()));
String
content
=
MessageFormat
.
format
(
"任务调度失败, 执行器名称:{0}, 任务描述:{1}."
,
group
!=
null
?
group
.
getTitle
():
"null"
,
info
.
getJobDesc
());
MailUtil
.
sendMail
(
email
,
title
,
content
,
false
,
null
);
...
...
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
浏览文件 @
b590a65c
...
...
@@ -14,11 +14,11 @@
<result
column=
"executor_param"
property=
"executorParam"
/>
<result
column=
"trigger_time"
property=
"triggerTime"
/>
<result
column=
"trigger_
status"
property=
"triggerStatus
"
/>
<result
column=
"trigger_
code"
property=
"triggerCode
"
/>
<result
column=
"trigger_msg"
property=
"triggerMsg"
/>
<result
column=
"handle_time"
property=
"handleTime"
/>
<result
column=
"handle_
status"
property=
"handleStatus
"
/>
<result
column=
"handle_
code"
property=
"handleCode
"
/>
<result
column=
"handle_msg"
property=
"handleMsg"
/>
</resultMap>
...
...
@@ -31,10 +31,10 @@
t.executor_handler,
t.executor_param,
t.trigger_time,
t.trigger_
status
,
t.trigger_
code
,
t.trigger_msg,
t.handle_time,
t.handle_
status
,
t.handle_
code
,
t.handle_msg
</sql>
...
...
@@ -108,7 +108,7 @@
UPDATE XXL_JOB_QRTZ_TRIGGER_LOG
SET
`trigger_time`= #{triggerTime},
`trigger_
status`= #{triggerStatus},
`trigger_
code`= #{triggerCode},
`trigger_msg`= #{triggerMsg},
`executor_address`= #{executorAddress},
`executor_handler`=#{executorHandler},
...
...
@@ -120,7 +120,7 @@
UPDATE XXL_JOB_QRTZ_TRIGGER_LOG
SET
`handle_time`= #{handleTime},
`handle_
status`= #{handleStatus},
`handle_
code`= #{handleCode},
`handle_msg`= #{handleMsg}
WHERE `id`= #{id}
</update>
...
...
xxl-job-core/src/main/java/com/xxl/job/core/biz/AdminBiz.java
浏览文件 @
b590a65c
package
com
.
xxl
.
job
.
core
.
biz
;
import
com.xxl.job.core.biz.model.HandleCallbackParam
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.TriggerParam
;
/**
* Created by xuxueli on 17/3/1.
*/
public
interface
AdminBiz
{
public
ReturnT
<
String
>
callback
(
TriggerParam
trigger
Param
);
public
ReturnT
<
String
>
callback
(
HandleCallbackParam
handleCallback
Param
);
}
xxl-job-core/src/main/java/com/xxl/job/core/biz/model/HandleCallbackParam.java
0 → 100644
浏览文件 @
b590a65c
package
com
.
xxl
.
job
.
core
.
biz
.
model
;
import
java.io.Serializable
;
import
java.util.Set
;
/**
* Created by xuxueli on 17/3/2.
*/
public
class
HandleCallbackParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
42L
;
private
int
logId
;
private
Set
<
String
>
logAddress
;
private
int
code
;
private
String
msg
;
public
HandleCallbackParam
(
int
logId
,
Set
<
String
>
logAddress
,
int
code
,
String
msg
)
{
this
.
logId
=
logId
;
this
.
logAddress
=
logAddress
;
this
.
code
=
code
;
this
.
msg
=
msg
;
}
public
int
getLogId
()
{
return
logId
;
}
public
void
setLogId
(
int
logId
)
{
this
.
logId
=
logId
;
}
public
Set
<
String
>
getLogAddress
()
{
return
logAddress
;
}
public
void
setLogAddress
(
Set
<
String
>
logAddress
)
{
this
.
logAddress
=
logAddress
;
}
public
int
getCode
()
{
return
code
;
}
public
void
setCode
(
int
code
)
{
this
.
code
=
code
;
}
public
String
getMsg
()
{
return
msg
;
}
public
void
setMsg
(
String
msg
)
{
this
.
msg
=
msg
;
}
}
xxl-job-core/src/main/java/com/xxl/job/core/biz/model/TriggerParam.java
浏览文件 @
b590a65c
...
...
@@ -23,9 +23,6 @@ public class TriggerParam implements Serializable{
private
int
logId
;
private
long
logDateTim
;
private
String
status
;
private
String
msg
;
public
String
getAction
()
{
return
action
;
}
...
...
@@ -98,22 +95,6 @@ public class TriggerParam implements Serializable{
this
.
logDateTim
=
logDateTim
;
}
public
String
getStatus
()
{
return
status
;
}
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
}
public
String
getMsg
()
{
return
msg
;
}
public
void
setMsg
(
String
msg
)
{
this
.
msg
=
msg
;
}
@Override
public
String
toString
()
{
return
"RequestModel{"
+
...
...
@@ -126,8 +107,6 @@ public class TriggerParam implements Serializable{
", logAddress="
+
logAddress
+
", logId="
+
logId
+
", logDateTim="
+
logDateTim
+
", status='"
+
status
+
'\''
+
", msg='"
+
msg
+
'\''
+
'}'
;
}
}
xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java
浏览文件 @
b590a65c
package
com
.
xxl
.
job
.
core
.
thread
;
import
com.xxl.job.core.biz.model.HandleCallbackParam
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.TriggerParam
;
import
com.xxl.job.core.handler.IJobHandler
;
...
...
@@ -96,14 +97,10 @@ public class JobThread extends Thread{
// callback handler info
if
(!
toStop
)
{
// commonm
triggerParam
.
setStatus
(
_code
+
""
);
triggerParam
.
setMsg
(
_msg
);
TriggerCallbackThread
.
pushCallBack
(
triggerParam
);
TriggerCallbackThread
.
pushCallBack
(
new
HandleCallbackParam
(
triggerParam
.
getLogId
(),
triggerParam
.
getLogAddress
(),
_code
,
_msg
));
}
else
{
// is killed
triggerParam
.
setStatus
(
ReturnT
.
FAIL_CODE
+
""
);
triggerParam
.
setMsg
(
stopReason
+
" [业务运行中,被强制终止]"
);
TriggerCallbackThread
.
pushCallBack
(
triggerParam
);
TriggerCallbackThread
.
pushCallBack
(
new
HandleCallbackParam
(
triggerParam
.
getLogId
(),
triggerParam
.
getLogAddress
(),
ReturnT
.
FAIL_CODE
,
stopReason
+
" [业务运行中,被强制终止]"
));
}
}
}
catch
(
Exception
e
)
{
...
...
@@ -116,9 +113,7 @@ public class JobThread extends Thread{
TriggerParam
triggerParam
=
triggerQueue
.
poll
();
if
(
triggerParam
!=
null
)
{
// is killed
triggerParam
.
setStatus
(
ReturnT
.
FAIL_CODE
+
""
);
triggerParam
.
setMsg
(
stopReason
+
" [任务尚未执行,在调度队列中被终止]"
);
TriggerCallbackThread
.
pushCallBack
(
triggerParam
);
TriggerCallbackThread
.
pushCallBack
(
new
HandleCallbackParam
(
triggerParam
.
getLogId
(),
triggerParam
.
getLogAddress
(),
ReturnT
.
FAIL_CODE
,
stopReason
+
" [任务尚未执行,在调度队列中被终止]"
));
}
}
...
...
xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java
浏览文件 @
b590a65c
package
com
.
xxl
.
job
.
core
.
thread
;
import
com.xxl.job.core.biz.AdminBiz
;
import
com.xxl.job.core.biz.model.HandleCallbackParam
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.TriggerParam
;
import
com.xxl.job.core.rpc.netcom.NetComClientProxy
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -15,18 +15,17 @@ import java.util.concurrent.LinkedBlockingQueue;
public
class
TriggerCallbackThread
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
TriggerCallbackThread
.
class
);
private
static
LinkedBlockingQueue
<
TriggerParam
>
callBackQueue
=
new
LinkedBlockingQueue
<
Trigger
Param
>();
private
static
LinkedBlockingQueue
<
HandleCallbackParam
>
callBackQueue
=
new
LinkedBlockingQueue
<
HandleCallback
Param
>();
static
{
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
while
(
true
){
try
{
Trigger
Param
callback
=
callBackQueue
.
take
();
HandleCallback
Param
callback
=
callBackQueue
.
take
();
if
(
callback
!=
null
)
{
for
(
String
address
:
callback
.
getLogAddress
())
{
try
{
// callback
AdminBiz
adminBiz
=
(
AdminBiz
)
new
NetComClientProxy
(
AdminBiz
.
class
,
address
).
getObject
();
ReturnT
<
String
>
callbackResult
=
adminBiz
.
callback
(
callback
);
...
...
@@ -47,7 +46,7 @@ public class TriggerCallbackThread {
}
}).
start
();
}
public
static
void
pushCallBack
(
Trigger
Param
callback
){
public
static
void
pushCallBack
(
HandleCallback
Param
callback
){
callBackQueue
.
add
(
callback
);
logger
.
debug
(
">>>>>>>>>>> xxl-job, push callback request, logId:{}"
,
callback
.
getLogId
());
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论