Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
f587f10e
提交
f587f10e
authored
12月 20, 2017
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
失败重试完整支持:任务流程分为调度和执行,之前仅支持调度失败的重试;目前支持执行失败的重试,通过任务返回值判断。
上级
451eb2b7
显示空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
69 行增加
和
27 行删除
+69
-27
XXL-JOB官方文档.md
doc/XXL-JOB官方文档.md
+2
-1
JobFailMonitorHelper.java
...a/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java
+6
-3
XxlJobTrigger.java
...in/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java
+1
-1
AdminBizImpl.java
...ain/java/com/xxl/job/admin/service/impl/AdminBizImpl.java
+22
-10
joblog.index.1.js
xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js
+20
-3
IJobHandler.java
...e/src/main/java/com/xxl/job/core/handler/IJobHandler.java
+10
-1
ScriptJobHandler.java
.../java/com/xxl/job/core/handler/impl/ScriptJobHandler.java
+1
-1
JobThread.java
...core/src/main/java/com/xxl/job/core/thread/JobThread.java
+1
-1
DemoJobHandler.java
...eli/executor/sample/jfinal/jobhandler/DemoJobHandler.java
+1
-1
ShardingJobHandler.java
...executor/sample/jfinal/jobhandler/ShardingJobHandler.java
+1
-1
DemoJobHandler.java
...m/xxl/job/executor/service/jobhandler/DemoJobHandler.java
+1
-1
ShardingJobHandler.java
...l/job/executor/service/jobhandler/ShardingJobHandler.java
+1
-1
DemoJobHandler.java
...m/xxl/job/executor/service/jobhandler/DemoJobHandler.java
+1
-1
ShardingJobHandler.java
...l/job/executor/service/jobhandler/ShardingJobHandler.java
+1
-1
没有找到文件。
doc/XXL-JOB官方文档.md
浏览文件 @
f587f10e
...
@@ -1065,6 +1065,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
...
@@ -1065,6 +1065,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
11、任务Cron长度扩展支持至128位;
-
11、任务Cron长度扩展支持至128位;
-
12、调度报表优化,支持时间区间筛选;
-
12、调度报表优化,支持时间区间筛选;
-
13、Log组件支持输出异常栈信息,底层实现优化;
-
13、Log组件支持输出异常栈信息,底层实现优化;
-
14、失败重试完整支持:任务流程分为调度和执行,之前仅支持调度失败的重试;目前支持执行失败的重试,通过任务返回值判断。
### TODO LIST
### TODO LIST
-
1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
-
1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
...
@@ -1085,7 +1086,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
...
@@ -1085,7 +1086,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
16、任务告警邮件优化,调整为表格形式;
-
16、任务告警邮件优化,调整为表格形式;
-
17、JobHandler提供 init/destroy 方法,支持自定义任务线程销毁逻辑;
-
17、JobHandler提供 init/destroy 方法,支持自定义任务线程销毁逻辑;
-
18、执行器回调地址/日志地址格式兼容,是否已"/"结尾均支持;
-
18、执行器回调地址/日志地址格式兼容,是否已"/"结尾均支持;
-
19、失败重试完整支持:任务流程分为触发和执行,目前仅支持触发失败的重试;后续支持任务执行失败的重试,通过任务返回值判断。
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java
浏览文件 @
f587f10e
...
@@ -6,6 +6,7 @@ import com.xxl.job.admin.core.model.XxlJobLog;
...
@@ -6,6 +6,7 @@ import com.xxl.job.admin.core.model.XxlJobLog;
import
com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler
;
import
com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler
;
import
com.xxl.job.admin.core.util.MailUtil
;
import
com.xxl.job.admin.core.util.MailUtil
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.handler.IJobHandler
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -51,13 +52,15 @@ public class JobFailMonitorHelper {
...
@@ -51,13 +52,15 @@ public class JobFailMonitorHelper {
if
(
log
==
null
)
{
if
(
log
==
null
)
{
continue
;
continue
;
}
}
if
(
ReturnT
.
SUCCESS_CODE
==
log
.
getTriggerCode
()
&&
log
.
getHandleCode
()
==
0
)
{
if
(
IJobHandler
.
SUCCESS
.
getCode
()
==
log
.
getTriggerCode
()
&&
log
.
getHandleCode
()
==
0
)
{
JobFailMonitorHelper
.
monitor
(
jobLogId
);
JobFailMonitorHelper
.
monitor
(
jobLogId
);
logger
.
info
(
">>>>>>>>>>> job monitor, job running, JobLogId:{}"
,
jobLogId
);
logger
.
info
(
">>>>>>>>>>> job monitor, job running, JobLogId:{}"
,
jobLogId
);
}
else
if
(
ReturnT
.
SUCCESS_CODE
==
log
.
getTriggerCode
()
&&
ReturnT
.
SUCCESS_CODE
==
log
.
getHandleCode
())
{
}
else
if
(
IJobHandler
.
SUCCESS
.
getCode
()
==
log
.
getHandleCode
())
{
// job success, pass
// job success, pass
logger
.
info
(
">>>>>>>>>>> job monitor, job success, JobLogId:{}"
,
jobLogId
);
logger
.
info
(
">>>>>>>>>>> job monitor, job success, JobLogId:{}"
,
jobLogId
);
}
else
if
(
ReturnT
.
FAIL_CODE
==
log
.
getTriggerCode
()
||
ReturnT
.
FAIL_CODE
==
log
.
getHandleCode
())
{
}
else
if
(
IJobHandler
.
FAIL
.
getCode
()
==
log
.
getTriggerCode
()
||
IJobHandler
.
FAIL
.
getCode
()
==
log
.
getHandleCode
()
||
IJobHandler
.
FAIL_RETRY
.
getCode
()
==
log
.
getHandleCode
()
)
{
// job fail,
// job fail,
failAlarm
(
log
);
failAlarm
(
log
);
logger
.
info
(
">>>>>>>>>>> job monitor, job fail, JobLogId:{}"
,
jobLogId
);
logger
.
info
(
">>>>>>>>>>> job monitor, job fail, JobLogId:{}"
,
jobLogId
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java
浏览文件 @
f587f10e
...
@@ -171,7 +171,7 @@ public class XxlJobTrigger {
...
@@ -171,7 +171,7 @@ public class XxlJobTrigger {
// 4.3、trigger (fail retry)
// 4.3、trigger (fail retry)
if
(
triggerResult
.
getCode
()!=
ReturnT
.
SUCCESS_CODE
&&
failStrategy
==
ExecutorFailStrategyEnum
.
FAIL_RETRY
)
{
if
(
triggerResult
.
getCode
()!=
ReturnT
.
SUCCESS_CODE
&&
failStrategy
==
ExecutorFailStrategyEnum
.
FAIL_RETRY
)
{
triggerResult
=
executorRouteStrategyEnum
.
getRouter
().
routeRun
(
triggerParam
,
addressList
);
triggerResult
=
executorRouteStrategyEnum
.
getRouter
().
routeRun
(
triggerParam
,
addressList
);
triggerMsgSb
.
append
(
"<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>失败重试<<<<<<<<<<< </span><br>"
).
append
(
triggerResult
.
getMsg
());
triggerMsgSb
.
append
(
"<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>
调度
失败重试<<<<<<<<<<< </span><br>"
).
append
(
triggerResult
.
getMsg
());
}
}
}
}
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java
浏览文件 @
f587f10e
...
@@ -13,6 +13,7 @@ import com.xxl.job.core.biz.AdminBiz;
...
@@ -13,6 +13,7 @@ import com.xxl.job.core.biz.AdminBiz;
import
com.xxl.job.core.biz.model.HandleCallbackParam
;
import
com.xxl.job.core.biz.model.HandleCallbackParam
;
import
com.xxl.job.core.biz.model.RegistryParam
;
import
com.xxl.job.core.biz.model.RegistryParam
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.handler.IJobHandler
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.quartz.SchedulerException
;
import
org.quartz.SchedulerException
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -46,7 +47,7 @@ public class AdminBizImpl implements AdminBiz {
...
@@ -46,7 +47,7 @@ public class AdminBizImpl implements AdminBiz {
for
(
HandleCallbackParam
handleCallbackParam:
callbackParamList
)
{
for
(
HandleCallbackParam
handleCallbackParam:
callbackParamList
)
{
ReturnT
<
String
>
callbackResult
=
callback
(
handleCallbackParam
);
ReturnT
<
String
>
callbackResult
=
callback
(
handleCallbackParam
);
logger
.
info
(
">>>>>>>>> JobApiController.callback {}, handleCallbackParam={}, callbackResult={}"
,
logger
.
info
(
">>>>>>>>> JobApiController.callback {}, handleCallbackParam={}, callbackResult={}"
,
(
callbackResult
.
getCode
()==
ReturnT
.
SUCCESS_CODE
?
"success"
:
"fail"
),
handleCallbackParam
,
callbackResult
);
(
callbackResult
.
getCode
()==
IJobHandler
.
SUCCESS
.
getCode
()
?
"success"
:
"fail"
),
handleCallbackParam
,
callbackResult
);
}
}
return
ReturnT
.
SUCCESS
;
return
ReturnT
.
SUCCESS
;
...
@@ -58,28 +59,39 @@ public class AdminBizImpl implements AdminBiz {
...
@@ -58,28 +59,39 @@ public class AdminBizImpl implements AdminBiz {
if
(
log
==
null
)
{
if
(
log
==
null
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"log item not found."
);
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"log item not found."
);
}
}
if
(
log
.
getHandleCode
()
>
0
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"log repeate callback."
);
// avoid repeat callback, trigger child job etc
}
// trigger success, to trigger child job
, and avoid repeat trigger child job
// trigger success, to trigger child job
String
c
hildTrigger
Msg
=
null
;
String
c
allback
Msg
=
null
;
if
(
ReturnT
.
SUCCESS_CODE
==
handleCallbackParam
.
getExecuteResult
().
getCode
()
&&
ReturnT
.
SUCCESS_CODE
!=
log
.
getHandle
Code
())
{
if
(
IJobHandler
.
SUCCESS
.
getCode
()
==
handleCallbackParam
.
getExecuteResult
().
get
Code
())
{
XxlJobInfo
xxlJobInfo
=
xxlJobInfoDao
.
loadById
(
log
.
getJobId
());
XxlJobInfo
xxlJobInfo
=
xxlJobInfoDao
.
loadById
(
log
.
getJobId
());
if
(
xxlJobInfo
!=
null
&&
StringUtils
.
isNotBlank
(
xxlJobInfo
.
getChildJobKey
()))
{
if
(
xxlJobInfo
!=
null
&&
StringUtils
.
isNotBlank
(
xxlJobInfo
.
getChildJobKey
()))
{
childTriggerMsg
=
"<hr>"
;
callbackMsg
=
"<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>触发子任务<<<<<<<<<<< </span><br>"
;
String
[]
childJobKeys
=
xxlJobInfo
.
getChildJobKey
().
split
(
","
);
String
[]
childJobKeys
=
xxlJobInfo
.
getChildJobKey
().
split
(
","
);
for
(
int
i
=
0
;
i
<
childJobKeys
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
childJobKeys
.
length
;
i
++)
{
String
[]
jobKeyArr
=
childJobKeys
[
i
].
split
(
"_"
);
String
[]
jobKeyArr
=
childJobKeys
[
i
].
split
(
"_"
);
if
(
jobKeyArr
!=
null
&&
jobKeyArr
.
length
==
2
)
{
if
(
jobKeyArr
!=
null
&&
jobKeyArr
.
length
==
2
)
{
ReturnT
<
String
>
triggerChildResult
=
xxlJobService
.
triggerJob
(
Integer
.
valueOf
(
jobKeyArr
[
1
]));
ReturnT
<
String
>
triggerChildResult
=
xxlJobService
.
triggerJob
(
Integer
.
valueOf
(
jobKeyArr
[
1
]));
// add msg
// add msg
c
hildTriggerMsg
+=
MessageFormat
.
format
(
"<br> {0}/{1} 触发子任务{2}, 子任务Key: {3}, 子任务触发备注: {4}
"
,
c
allbackMsg
+=
MessageFormat
.
format
(
"{0}/{1} [JobKey={2}], 触发{3}, 触发备注: {4} <br>
"
,
(
i
+
1
),
childJobKeys
.
length
,
(
triggerChildResult
.
getCode
()==
ReturnT
.
SUCCESS_CODE
?
"成功"
:
"失败"
),
childJobKeys
[
i
]
,
triggerChildResult
.
getMsg
());
(
i
+
1
),
childJobKeys
.
length
,
childJobKeys
[
i
],
(
triggerChildResult
.
getCode
()==
ReturnT
.
SUCCESS_CODE
?
"成功"
:
"失败"
)
,
triggerChildResult
.
getMsg
());
}
else
{
}
else
{
c
hildTriggerMsg
+=
MessageFormat
.
format
(
"<br> {0}/{1} 触发子任务失败, 子任务Key格式错误, 子任务Key: {2}
"
,
c
allbackMsg
+=
MessageFormat
.
format
(
" {0}/{1} [JobKey={2}], 触发失败, 触发备注: JobKey格式错误 <br>
"
,
(
i
+
1
),
childJobKeys
.
length
,
childJobKeys
[
i
]);
(
i
+
1
),
childJobKeys
.
length
,
childJobKeys
[
i
]);
}
}
}
}
}
}
}
else
if
(
IJobHandler
.
FAIL_RETRY
.
getCode
()
==
handleCallbackParam
.
getExecuteResult
().
getCode
()){
ReturnT
<
String
>
retryTriggerResult
=
xxlJobService
.
triggerJob
(
log
.
getJobId
());
callbackMsg
=
"<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>执行失败重试<<<<<<<<<<< </span><br>"
;
callbackMsg
+=
MessageFormat
.
format
(
"触发{0}, 触发备注: {1}"
,
(
retryTriggerResult
.
getCode
()==
ReturnT
.
SUCCESS_CODE
?
"成功"
:
"失败"
),
retryTriggerResult
.
getMsg
());
}
}
// handle msg
// handle msg
...
@@ -90,8 +102,8 @@ public class AdminBizImpl implements AdminBiz {
...
@@ -90,8 +102,8 @@ public class AdminBizImpl implements AdminBiz {
if
(
handleCallbackParam
.
getExecuteResult
().
getMsg
()
!=
null
)
{
if
(
handleCallbackParam
.
getExecuteResult
().
getMsg
()
!=
null
)
{
handleMsg
.
append
(
handleCallbackParam
.
getExecuteResult
().
getMsg
());
handleMsg
.
append
(
handleCallbackParam
.
getExecuteResult
().
getMsg
());
}
}
if
(
c
hildTriggerMsg
!=
null
)
{
if
(
c
allbackMsg
!=
null
)
{
handleMsg
.
append
(
"<br>子任务触发备注:"
).
append
(
childTrigger
Msg
);
handleMsg
.
append
(
callback
Msg
);
}
}
// success, save log
// success, save log
...
...
xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js
浏览文件 @
f587f10e
...
@@ -146,9 +146,16 @@ $(function() {
...
@@ -146,9 +146,16 @@ $(function() {
{
{
"data"
:
'triggerCode'
,
"data"
:
'triggerCode'
,
"render"
:
function
(
data
,
type
,
row
)
{
"render"
:
function
(
data
,
type
,
row
)
{
return
(
data
==
200
)?
'<span style="color: green">成功</span>'
:(
data
==
500
)?
'<span style="color: red">失败</span>'
:(
data
==
0
)?
''
:
data
;
var
html
=
data
;
if
(
data
==
200
)
{
html
=
'<span style="color: green">成功</span>'
;
}
else
if
(
data
==
500
)
{
html
=
'<span style="color: red">失败</span>'
;
}
else
if
(
data
==
0
)
{
html
=
''
;
}
return
html
;
}
}
},
},
{
{
"data"
:
'triggerMsg'
,
"data"
:
'triggerMsg'
,
...
@@ -165,7 +172,17 @@ $(function() {
...
@@ -165,7 +172,17 @@ $(function() {
{
{
"data"
:
'handleCode'
,
"data"
:
'handleCode'
,
"render"
:
function
(
data
,
type
,
row
)
{
"render"
:
function
(
data
,
type
,
row
)
{
return
(
data
==
200
)?
'<span style="color: green">成功</span>'
:(
data
==
500
)?
'<span style="color: red">失败</span>'
:(
data
==
0
)?
''
:
data
;
var
html
=
data
;
if
(
data
==
200
)
{
html
=
'<span style="color: green">成功</span>'
;
}
else
if
(
data
==
500
)
{
html
=
'<span style="color: red">失败</span>'
;
}
else
if
(
data
==
501
)
{
html
=
'<span style="color: red">失败重试</span>'
;
}
else
if
(
data
==
0
)
{
html
=
''
;
}
return
html
;
}
}
},
},
{
{
...
...
xxl-job-core/src/main/java/com/xxl/job/core/handler/IJobHandler.java
浏览文件 @
f587f10e
...
@@ -3,11 +3,20 @@ package com.xxl.job.core.handler;
...
@@ -3,11 +3,20 @@ package com.xxl.job.core.handler;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.ReturnT
;
/**
/**
* remote job handler
* job handler
*
* @author xuxueli 2015-12-19 19:06:38
* @author xuxueli 2015-12-19 19:06:38
*/
*/
public
abstract
class
IJobHandler
{
public
abstract
class
IJobHandler
{
/** success */
public
static
final
ReturnT
<
String
>
SUCCESS
=
new
ReturnT
<
String
>(
200
,
null
);
/** fail */
public
static
final
ReturnT
<
String
>
FAIL
=
new
ReturnT
<
String
>(
500
,
null
);
/** fail retry */
public
static
final
ReturnT
<
String
>
FAIL_RETRY
=
new
ReturnT
<
String
>(
501
,
null
);
/**
/**
* job handler
* job handler
* @param params
* @param params
...
...
xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/ScriptJobHandler.java
浏览文件 @
f587f10e
...
@@ -54,7 +54,7 @@ public class ScriptJobHandler extends IJobHandler {
...
@@ -54,7 +54,7 @@ public class ScriptJobHandler extends IJobHandler {
// invoke
// invoke
XxlJobLogger
.
log
(
"----------- script file:"
+
scriptFileName
+
" -----------"
);
XxlJobLogger
.
log
(
"----------- script file:"
+
scriptFileName
+
" -----------"
);
int
exitValue
=
ScriptUtil
.
execToFile
(
cmd
,
scriptFileName
,
logFileName
,
params
);
int
exitValue
=
ScriptUtil
.
execToFile
(
cmd
,
scriptFileName
,
logFileName
,
params
);
ReturnT
<
String
>
result
=
(
exitValue
==
0
)?
ReturnT
.
SUCCESS
:
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"script exit value("
+
exitValue
+
") is failed"
);
ReturnT
<
String
>
result
=
(
exitValue
==
0
)?
IJobHandler
.
SUCCESS
:
new
ReturnT
<
String
>(
IJobHandler
.
FAIL
.
getCode
()
,
"script exit value("
+
exitValue
+
") is failed"
);
return
result
;
return
result
;
}
}
...
...
xxl-job-core/src/main/java/com/xxl/job/core/thread/JobThread.java
浏览文件 @
f587f10e
...
@@ -120,7 +120,7 @@ public class JobThread extends Thread{
...
@@ -120,7 +120,7 @@ public class JobThread extends Thread{
XxlJobLogger
.
log
(
"<br>----------- xxl-job job execute start -----------<br>----------- Params:"
+
Arrays
.
toString
(
handlerParams
));
XxlJobLogger
.
log
(
"<br>----------- xxl-job job execute start -----------<br>----------- Params:"
+
Arrays
.
toString
(
handlerParams
));
executeResult
=
handler
.
execute
(
handlerParams
);
executeResult
=
handler
.
execute
(
handlerParams
);
if
(
executeResult
==
null
)
{
if
(
executeResult
==
null
)
{
executeResult
=
ReturnT
.
FAIL
;
executeResult
=
IJobHandler
.
FAIL
;
}
}
XxlJobLogger
.
log
(
"<br>----------- xxl-job job execute end(finish) -----------<br>----------- ReturnT:"
+
executeResult
);
XxlJobLogger
.
log
(
"<br>----------- xxl-job job execute end(finish) -----------<br>----------- ReturnT:"
+
executeResult
);
...
...
xxl-job-executor-samples/xxl-job-executor-sample-jfinal/src/main/java/com/xuxueli/executor/sample/jfinal/jobhandler/DemoJobHandler.java
浏览文件 @
f587f10e
...
@@ -27,7 +27,7 @@ public class DemoJobHandler extends IJobHandler {
...
@@ -27,7 +27,7 @@ public class DemoJobHandler extends IJobHandler {
XxlJobLogger
.
log
(
"beat at:"
+
i
);
XxlJobLogger
.
log
(
"beat at:"
+
i
);
TimeUnit
.
SECONDS
.
sleep
(
2
);
TimeUnit
.
SECONDS
.
sleep
(
2
);
}
}
return
ReturnT
.
SUCCESS
;
return
SUCCESS
;
}
}
}
}
xxl-job-executor-samples/xxl-job-executor-sample-jfinal/src/main/java/com/xuxueli/executor/sample/jfinal/jobhandler/ShardingJobHandler.java
浏览文件 @
f587f10e
...
@@ -29,7 +29,7 @@ public class ShardingJobHandler extends IJobHandler {
...
@@ -29,7 +29,7 @@ public class ShardingJobHandler extends IJobHandler {
}
}
}
}
return
ReturnT
.
SUCCESS
;
return
SUCCESS
;
}
}
}
}
xxl-job-executor-samples/xxl-job-executor-sample-spring/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java
浏览文件 @
f587f10e
...
@@ -32,7 +32,7 @@ public class DemoJobHandler extends IJobHandler {
...
@@ -32,7 +32,7 @@ public class DemoJobHandler extends IJobHandler {
XxlJobLogger
.
log
(
"beat at:"
+
i
);
XxlJobLogger
.
log
(
"beat at:"
+
i
);
TimeUnit
.
SECONDS
.
sleep
(
2
);
TimeUnit
.
SECONDS
.
sleep
(
2
);
}
}
return
ReturnT
.
SUCCESS
;
return
SUCCESS
;
}
}
}
}
xxl-job-executor-samples/xxl-job-executor-sample-spring/src/main/java/com/xxl/job/executor/service/jobhandler/ShardingJobHandler.java
浏览文件 @
f587f10e
...
@@ -33,7 +33,7 @@ public class ShardingJobHandler extends IJobHandler {
...
@@ -33,7 +33,7 @@ public class ShardingJobHandler extends IJobHandler {
}
}
}
}
return
ReturnT
.
SUCCESS
;
return
SUCCESS
;
}
}
}
}
xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/DemoJobHandler.java
浏览文件 @
f587f10e
...
@@ -32,7 +32,7 @@ public class DemoJobHandler extends IJobHandler {
...
@@ -32,7 +32,7 @@ public class DemoJobHandler extends IJobHandler {
XxlJobLogger
.
log
(
"beat at:"
+
i
);
XxlJobLogger
.
log
(
"beat at:"
+
i
);
TimeUnit
.
SECONDS
.
sleep
(
2
);
TimeUnit
.
SECONDS
.
sleep
(
2
);
}
}
return
ReturnT
.
SUCCESS
;
return
SUCCESS
;
}
}
}
}
xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/ShardingJobHandler.java
浏览文件 @
f587f10e
...
@@ -33,7 +33,7 @@ public class ShardingJobHandler extends IJobHandler {
...
@@ -33,7 +33,7 @@ public class ShardingJobHandler extends IJobHandler {
}
}
}
}
return
ReturnT
.
SUCCESS
;
return
SUCCESS
;
}
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论