Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
3d15669b
提交
3d15669b
authored
8月 18, 2018
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
UI以及库中,新增字段 "失败重试次数"
上级
881d6564
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
48 行增加
和
38 行删除
+48
-38
tables_xxl_job.sql
doc/db/tables_xxl_job.sql
+2
-1
JobInfoController.java
.../java/com/xxl/job/admin/controller/JobInfoController.java
+0
-2
ExecutorFailStrategyEnum.java
...om/xxl/job/admin/core/enums/ExecutorFailStrategyEnum.java
+5
-5
XxlJobInfo.java
...rc/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java
+9
-0
XxlJobTrigger.java
...in/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java
+2
-2
XxlJobServiceImpl.java
...ava/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
+1
-7
message.properties
xxl-job-admin/src/main/resources/i18n/message.properties
+2
-2
message_en.properties
xxl-job-admin/src/main/resources/i18n/message_en.properties
+2
-2
XxlJobInfoMapper.xml
...in/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
+5
-0
jobinfo.index.ftl
...rc/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl
+4
-16
jobinfo.index.1.js
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
+16
-1
没有找到文件。
doc/db/tables_xxl_job.sql
浏览文件 @
3d15669b
...
...
@@ -163,7 +163,8 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_INFO` (
`executor_param`
varchar
(
512
)
DEFAULT
NULL
COMMENT
'执行器任务参数'
,
`executor_block_strategy`
varchar
(
50
)
DEFAULT
NULL
COMMENT
'阻塞处理策略'
,
`executor_fail_strategy`
varchar
(
50
)
DEFAULT
NULL
COMMENT
'失败处理策略'
,
`executor_timeout`
int
(
11
)
NOT
NULL
DEFAULT
0
COMMENT
'任务执行超时时间,单位秒'
,
`executor_timeout`
int
(
11
)
NOT
NULL
DEFAULT
'0'
COMMENT
'任务执行超时时间,单位秒'
,
`executor_fail_retry_count`
int
(
11
)
NOT
NULL
DEFAULT
'0'
COMMENT
'失败重试次数'
,
`glue_type`
varchar
(
50
)
NOT
NULL
COMMENT
'GLUE类型'
,
`glue_source`
text
COMMENT
'GLUE源代码'
,
`glue_remark`
varchar
(
128
)
DEFAULT
NULL
COMMENT
'GLUE备注'
,
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java
浏览文件 @
3d15669b
package
com
.
xxl
.
job
.
admin
.
controller
;
import
com.xxl.job.admin.core.enums.ExecutorFailStrategyEnum
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum
;
...
...
@@ -39,7 +38,6 @@ public class JobInfoController {
model
.
addAttribute
(
"ExecutorRouteStrategyEnum"
,
ExecutorRouteStrategyEnum
.
values
());
// 路由策略-列表
model
.
addAttribute
(
"GlueTypeEnum"
,
GlueTypeEnum
.
values
());
// Glue类型-字典
model
.
addAttribute
(
"ExecutorBlockStrategyEnum"
,
ExecutorBlockStrategyEnum
.
values
());
// 阻塞处理策略-字典
model
.
addAttribute
(
"ExecutorFailStrategyEnum"
,
ExecutorFailStrategyEnum
.
values
());
// 失败处理策略-字典
// 任务组
List
<
XxlJobGroup
>
jobGroupList
=
xxlJobGroupDao
.
findAll
();
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/enums/ExecutorFailStrategyEnum.java
浏览文件 @
3d15669b
package
com
.
xxl
.
job
.
admin
.
core
.
enums
;
import
com.xxl.job.admin.core.util.I18nUtil
;
/**
* Created by xuxueli on 17/5/9.
*/
@Deprecated
public
enum
ExecutorFailStrategyEnum
{
NULL
(
I18nUtil
.
getString
(
"jobconf_fail_null"
)
),
NULL
(
"NULL"
),
FAIL_TRIGGER_RETRY
(
I18nUtil
.
getString
(
"jobconf_fail_trigger_retry"
)
),
FAIL_TRIGGER_RETRY
(
"FAIL_TRIGGER_RETRY"
),
FAIL_HANDLE_RETRY
(
I18nUtil
.
getString
(
"jobconf_fail_handle_retry"
)
);
FAIL_HANDLE_RETRY
(
"FAIL_HANDLE_RETRY"
);
private
final
String
title
;
private
ExecutorFailStrategyEnum
(
String
title
)
{
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java
浏览文件 @
3d15669b
...
...
@@ -27,6 +27,7 @@ public class XxlJobInfo {
private
String
executorBlockStrategy
;
// 阻塞处理策略
private
String
executorFailStrategy
;
// 失败处理策略
private
int
executorTimeout
;
// 任务执行超时时间,单位秒
private
int
executorFailRetryCount
;
// 失败重试次数
private
String
glueType
;
// GLUE类型 #com.xxl.job.core.glue.GlueTypeEnum
private
String
glueSource
;
// GLUE源代码
...
...
@@ -151,6 +152,14 @@ public class XxlJobInfo {
this
.
executorTimeout
=
executorTimeout
;
}
public
int
getExecutorFailRetryCount
()
{
return
executorFailRetryCount
;
}
public
void
setExecutorFailRetryCount
(
int
executorFailRetryCount
)
{
this
.
executorFailRetryCount
=
executorFailRetryCount
;
}
public
String
getGlueType
()
{
return
glueType
;
}
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java
浏览文件 @
3d15669b
...
...
@@ -74,7 +74,7 @@ public class XxlJobTrigger {
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobconf_trigger_exe_regaddress"
)).
append
(
":"
).
append
(
group
.
getRegistryList
());
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobinfo_field_executorRouteStrategy"
)).
append
(
":"
).
append
(
executorRouteStrategyEnum
.
getTitle
()).
append
(
"("
+
i
+
"/"
+
addressList
.
size
()+
")"
);
// update01
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobinfo_field_executorBlockStrategy"
)).
append
(
":"
).
append
(
blockStrategy
.
getTitle
());
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobinfo_field_executorFail
Strategy"
)).
append
(
":"
).
append
(
failStrategy
.
getTitle
());
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobinfo_field_executorFail
RetryCount"
)).
append
(
":"
).
append
(
jobInfo
.
getExecutorFailRetryCount
());
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobinfo_field_timeout"
)).
append
(
":"
).
append
(
jobInfo
.
getExecutorTimeout
());
// 3、trigger-valid
...
...
@@ -144,7 +144,7 @@ public class XxlJobTrigger {
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobconf_trigger_exe_regaddress"
)).
append
(
":"
).
append
(
group
.
getRegistryList
());
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobinfo_field_executorRouteStrategy"
)).
append
(
":"
).
append
(
executorRouteStrategyEnum
.
getTitle
());
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobinfo_field_executorBlockStrategy"
)).
append
(
":"
).
append
(
blockStrategy
.
getTitle
());
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobinfo_field_executorFail
Strategy"
)).
append
(
":"
).
append
(
failStrategy
.
getTitle
());
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobinfo_field_executorFail
RetryCount"
)).
append
(
":"
).
append
(
jobInfo
.
getExecutorFailRetryCount
());
triggerMsgSb
.
append
(
"<br>"
).
append
(
I18nUtil
.
getString
(
"jobinfo_field_timeout"
)).
append
(
":"
).
append
(
jobInfo
.
getExecutorTimeout
());
// 3、trigger-valid
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
浏览文件 @
3d15669b
package
com
.
xxl
.
job
.
admin
.
service
.
impl
;
import
com.xxl.job.admin.core.enums.ExecutorFailStrategyEnum
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum
;
...
...
@@ -90,9 +89,6 @@ public class XxlJobServiceImpl implements XxlJobService {
if
(
ExecutorBlockStrategyEnum
.
match
(
jobInfo
.
getExecutorBlockStrategy
(),
null
)
==
null
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
(
I18nUtil
.
getString
(
"jobinfo_field_executorBlockStrategy"
)+
I18nUtil
.
getString
(
"system_unvalid"
))
);
}
if
(
ExecutorFailStrategyEnum
.
match
(
jobInfo
.
getExecutorFailStrategy
(),
null
)
==
null
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
(
I18nUtil
.
getString
(
"jobinfo_field_executorFailStrategy"
)+
I18nUtil
.
getString
(
"system_unvalid"
))
);
}
if
(
GlueTypeEnum
.
match
(
jobInfo
.
getGlueType
())
==
null
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
(
I18nUtil
.
getString
(
"jobinfo_field_gluetype"
)+
I18nUtil
.
getString
(
"system_unvalid"
))
);
}
...
...
@@ -167,9 +163,6 @@ public class XxlJobServiceImpl implements XxlJobService {
if
(
ExecutorBlockStrategyEnum
.
match
(
jobInfo
.
getExecutorBlockStrategy
(),
null
)
==
null
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
(
I18nUtil
.
getString
(
"jobinfo_field_executorBlockStrategy"
)+
I18nUtil
.
getString
(
"system_unvalid"
))
);
}
if
(
ExecutorFailStrategyEnum
.
match
(
jobInfo
.
getExecutorFailStrategy
(),
null
)
==
null
)
{
return
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
(
I18nUtil
.
getString
(
"jobinfo_field_executorFailStrategy"
)+
I18nUtil
.
getString
(
"system_unvalid"
)));
}
// ChildJobId valid
if
(
StringUtils
.
isNotBlank
(
jobInfo
.
getChildJobId
()))
{
...
...
@@ -210,6 +203,7 @@ public class XxlJobServiceImpl implements XxlJobService {
exists_jobInfo
.
setExecutorBlockStrategy
(
jobInfo
.
getExecutorBlockStrategy
());
exists_jobInfo
.
setExecutorFailStrategy
(
jobInfo
.
getExecutorFailStrategy
());
exists_jobInfo
.
setExecutorTimeout
(
jobInfo
.
getExecutorTimeout
());
exists_jobInfo
.
setExecutorFailRetryCount
(
jobInfo
.
getExecutorFailRetryCount
());
exists_jobInfo
.
setChildJobId
(
jobInfo
.
getChildJobId
());
xxlJobInfoDao
.
update
(
exists_jobInfo
);
...
...
xxl-job-admin/src/main/resources/i18n/message.properties
浏览文件 @
3d15669b
...
...
@@ -116,7 +116,8 @@ jobinfo_field_childJobId=子任务ID
jobinfo_field_childJobId_limit
=
子任务ID({0})不可与父任务重复
jobinfo_field_childJobId_placeholder
=
请输入子任务的任务ID,如存在多个则逗号分隔
jobinfo_field_executorBlockStrategy
=
阻塞处理策略
jobinfo_field_executorFailStrategy
=
失败处理策略
jobinfo_field_executorFailRetryCount
=
失败重试次数
jobinfo_field_executorFailRetryCount_placeholder
=
失败重试次数,大于零时生效
jobinfo_script_location
=
脚本位置
jobinfo_shard_index
=
分片序号
jobinfo_shard_total
=
分片总数
...
...
@@ -198,7 +199,6 @@ jobgroup_del_limit_1=拒绝删除, 系统至少保留一个执行器
jobconf_block_SERIAL_EXECUTION
=
单机串行
jobconf_block_DISCARD_LATER
=
丢弃后续调度
jobconf_block_COVER_EARLY
=
覆盖之前调度
jobconf_fail_null
=
无
jobconf_fail_trigger_retry
=
调度失败重试
jobconf_fail_handle_retry
=
执行失败重试
jobconf_route_first
=
第一个
...
...
xxl-job-admin/src/main/resources/i18n/message_en.properties
浏览文件 @
3d15669b
...
...
@@ -116,7 +116,8 @@ jobinfo_field_childJobId=Child Job ID
jobinfo_field_childJobId_limit
=
Child job ID({0}) cannot be duplicated with the parent job.
jobinfo_field_childJobId_placeholder
=
Please enter the Child job ID, if there are more than one comma separated
jobinfo_field_executorBlockStrategy
=
Block Strategy
jobinfo_field_executorFailStrategy
=
Fail Strategy
jobinfo_field_executorFailRetryCount
=
Fail Retry Count
jobinfo_field_executorFailRetryCount_placeholder
=
Fail Retry Count. effect if greater than zero
jobinfo_script_location
=
Script location
jobinfo_shard_index
=
Shard index
jobinfo_shard_total
=
Shard total
...
...
@@ -198,7 +199,6 @@ jobgroup_del_limit_1=Refuses to delete, the system retains at least one executor
jobconf_block_SERIAL_EXECUTION
=
Serial execution
jobconf_block_DISCARD_LATER
=
Discard Later
jobconf_block_COVER_EARLY
=
Cover Early
jobconf_fail_null
=
Fail Alarm
jobconf_fail_trigger_retry
=
Trigger Fail Retry
jobconf_fail_handle_retry
=
Handle Fail Retry
jobconf_route_first
=
First
...
...
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
浏览文件 @
3d15669b
...
...
@@ -22,6 +22,7 @@
<result
column=
"executor_block_strategy"
property=
"executorBlockStrategy"
/>
<result
column=
"executor_fail_strategy"
property=
"executorFailStrategy"
/>
<result
column=
"executor_timeout"
property=
"executorTimeout"
/>
<result
column=
"executor_fail_retry_count"
property=
"executorFailRetryCount"
/>
<result
column=
"glue_type"
property=
"glueType"
/>
<result
column=
"glue_source"
property=
"glueSource"
/>
...
...
@@ -46,6 +47,7 @@
t.executor_block_strategy,
t.executor_fail_strategy,
t.executor_timeout,
t.executor_fail_retry_count,
t.glue_type,
t.glue_source,
t.glue_remark,
...
...
@@ -102,6 +104,7 @@
executor_block_strategy,
executor_fail_strategy,
executor_timeout,
executor_fail_retry_count,
glue_type,
glue_source,
glue_remark,
...
...
@@ -121,6 +124,7 @@
#{executorBlockStrategy},
#{executorFailStrategy},
#{executorTimeout},
#{executorFailRetryCount},
#{glueType},
#{glueSource},
#{glueRemark},
...
...
@@ -153,6 +157,7 @@
executor_block_strategy = #{executorBlockStrategy},
executor_fail_strategy = #{executorFailStrategy},
executor_timeout = ${executorTimeout},
executor_fail_retry_count = ${executorFailRetryCount},
glue_type = #{glueType},
glue_source = #{glueSource},
glue_remark = #{glueRemark},
...
...
xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl
浏览文件 @
3d15669b
...
...
@@ -157,14 +157,8 @@
</div>
</div>
<div
class=
"form-group"
>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
${I18n.jobinfo_field_executorFailStrategy}
<font
color=
"red"
>
*
</font></label>
<div
class=
"col-sm-4"
>
<select
class=
"form-control"
name=
"executorFailStrategy"
>
<
#
list
ExecutorFailStrategyEnum
as
item
>
<option
value=
"${item}"
>
${item.title}
</option>
</
#
list>
</select>
</div>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
${I18n.jobinfo_field_executorFailRetryCount}
<font
color=
"black"
>
*
</font></label>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"executorFailRetryCount"
placeholder=
"${I18n.jobinfo_field_executorFailRetryCount_placeholder}"
maxlength=
"4"
></div>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
${I18n.jobinfo_field_alarmemail}
<font
color=
"black"
>
*
</font></label>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"alarmEmail"
placeholder=
"${I18n.jobinfo_field_alarmemail_placeholder}"
maxlength=
"100"
></div>
</div>
...
...
@@ -345,14 +339,8 @@ process.exit(0)
</div>
</div>
<div
class=
"form-group"
>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
${I18n.jobinfo_field_executorFailStrategy}
<font
color=
"red"
>
*
</font></label>
<div
class=
"col-sm-4"
>
<select
class=
"form-control"
name=
"executorFailStrategy"
>
<
#
list
ExecutorFailStrategyEnum
as
item
>
<option
value=
"${item}"
>
${item.title}
</option>
</
#
list>
</select>
</div>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
${I18n.jobinfo_field_executorFailRetryCount}
<font
color=
"black"
>
*
</font></label>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"executorFailRetryCount"
placeholder=
"${I18n.jobinfo_field_executorFailRetryCount_placeholder}"
maxlength=
"4"
></div>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
${I18n.jobinfo_field_alarmemail}
<font
color=
"black"
>
*
</font></label>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"alarmEmail"
placeholder=
"${I18n.jobinfo_field_alarmemail_placeholder}"
maxlength=
"100"
></div>
...
...
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
浏览文件 @
3d15669b
...
...
@@ -267,6 +267,9 @@ $(function() {
},
executorTimeout
:
{
digits
:
true
},
executorFailRetryCount
:
{
digits
:
true
}
},
messages
:
{
...
...
@@ -278,6 +281,12 @@ $(function() {
},
author
:
{
required
:
I18n
.
system_please_input
+
I18n
.
jobinfo_field_author
},
executorTimeout
:
{
digits
:
I18n
.
system_please_input
+
I18n
.
system_digits
},
executorFailRetryCount
:
{
digits
:
I18n
.
system_please_input
+
I18n
.
system_digits
}
},
highlight
:
function
(
element
)
{
...
...
@@ -376,12 +385,12 @@ $(function() {
$
(
"#updateModal .form input[name='author']"
).
val
(
row
.
author
);
$
(
"#updateModal .form input[name='alarmEmail']"
).
val
(
row
.
alarmEmail
);
$
(
"#updateModal .form input[name='executorTimeout']"
).
val
(
row
.
executorTimeout
);
$
(
"#updateModal .form input[name='executorFailRetryCount']"
).
val
(
row
.
executorFailRetryCount
);
$
(
'#updateModal .form select[name=executorRouteStrategy] option[value='
+
row
.
executorRouteStrategy
+
']'
).
prop
(
'selected'
,
true
);
$
(
"#updateModal .form input[name='executorHandler']"
).
val
(
row
.
executorHandler
);
$
(
"#updateModal .form input[name='executorParam']"
).
val
(
row
.
executorParam
);
$
(
"#updateModal .form input[name='childJobId']"
).
val
(
row
.
childJobId
);
$
(
'#updateModal .form select[name=executorBlockStrategy] option[value='
+
row
.
executorBlockStrategy
+
']'
).
prop
(
'selected'
,
true
);
$
(
'#updateModal .form select[name=executorFailStrategy] option[value='
+
row
.
executorFailStrategy
+
']'
).
prop
(
'selected'
,
true
);
$
(
'#updateModal .form select[name=glueType] option[value='
+
row
.
glueType
+
']'
).
prop
(
'selected'
,
true
);
$
(
"#updateModal .form select[name=glueType]"
).
change
();
...
...
@@ -407,6 +416,9 @@ $(function() {
},
executorTimeout
:
{
digits
:
true
},
executorFailRetryCount
:
{
digits
:
true
}
},
messages
:
{
...
...
@@ -421,6 +433,9 @@ $(function() {
},
executorTimeout
:
{
digits
:
I18n
.
system_please_input
+
I18n
.
system_digits
},
executorFailRetryCount
:
{
digits
:
I18n
.
system_please_input
+
I18n
.
system_digits
}
},
highlight
:
function
(
element
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论