Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
8048b0c7
提交
8048b0c7
authored
7月 24, 2016
作者:
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
重要功能推送:支持子任务依赖;
上级
34c54e55
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
89 行增加
和
14 行删除
+89
-14
tables_xxl_job.sql
db/tables_xxl_job.sql
+1
-0
JobInfoController.java
.../java/com/xxl/job/admin/controller/JobInfoController.java
+5
-4
XxlJobLogCallbackServerHandler.java
...b/admin/core/callback/XxlJobLogCallbackServerHandler.java
+33
-0
XxlJobInfo.java
...rc/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java
+10
-0
IXxlJobService.java
...c/main/java/com/xxl/job/admin/service/IXxlJobService.java
+3
-2
XxlJobServiceImpl.java
...ava/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
+5
-2
XxlJobInfoMapper.xml
...in/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
+10
-4
common.macro.ftl
.../src/main/webapp/WEB-INF/template/common/common.macro.ftl
+1
-1
jobinfo.index.ftl
...rc/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl
+9
-1
jobinfo.index.1.js
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
+12
-0
没有找到文件。
db/tables_xxl_job.sql
浏览文件 @
8048b0c7
...
@@ -161,6 +161,7 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_INFO` (
...
@@ -161,6 +161,7 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_INFO` (
`glue_switch`
int
(
11
)
DEFAULT
'0'
COMMENT
'GLUE模式开关:0-否,1-是'
,
`glue_switch`
int
(
11
)
DEFAULT
'0'
COMMENT
'GLUE模式开关:0-否,1-是'
,
`glue_source`
text
COMMENT
'GLUE源代码'
,
`glue_source`
text
COMMENT
'GLUE源代码'
,
`glue_remark`
varchar
(
128
)
DEFAULT
NULL
COMMENT
'GLUE备注'
,
`glue_remark`
varchar
(
128
)
DEFAULT
NULL
COMMENT
'GLUE备注'
,
`child_jobkey`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'子任务Key'
,
PRIMARY
KEY
(
`id`
)
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
;
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
=
utf8
;
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java
浏览文件 @
8048b0c7
...
@@ -41,19 +41,20 @@ public class JobInfoController {
...
@@ -41,19 +41,20 @@ public class JobInfoController {
@RequestMapping
(
"/add"
)
@RequestMapping
(
"/add"
)
@ResponseBody
@ResponseBody
public
ReturnT
<
String
>
add
(
String
jobGroup
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
public
ReturnT
<
String
>
add
(
String
jobGroup
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
glueSource
,
String
glueRemark
)
{
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
glueSource
,
String
glueRemark
,
String
childJobKey
)
{
return
xxlJobService
.
add
(
jobGroup
,
jobCron
,
jobDesc
,
author
,
alarmEmail
,
return
xxlJobService
.
add
(
jobGroup
,
jobCron
,
jobDesc
,
author
,
alarmEmail
,
executorAddress
,
executorHandler
,
executorParam
,
glueSwitch
,
glueSource
,
glueRemark
);
executorAddress
,
executorHandler
,
executorParam
,
glueSwitch
,
glueSource
,
glueRemark
,
childJobKey
);
}
}
@RequestMapping
(
"/reschedule"
)
@RequestMapping
(
"/reschedule"
)
@ResponseBody
@ResponseBody
public
ReturnT
<
String
>
reschedule
(
String
jobGroup
,
String
jobName
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
public
ReturnT
<
String
>
reschedule
(
String
jobGroup
,
String
jobName
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
)
{
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
childJobKey
)
{
return
xxlJobService
.
reschedule
(
jobGroup
,
jobName
,
jobCron
,
jobDesc
,
author
,
alarmEmail
,
return
xxlJobService
.
reschedule
(
jobGroup
,
jobName
,
jobCron
,
jobDesc
,
author
,
alarmEmail
,
executorAddress
,
executorHandler
,
executorParam
,
glueSwitch
);
executorAddress
,
executorHandler
,
executorParam
,
glueSwitch
,
childJobKey
);
}
}
@RequestMapping
(
"/remove"
)
@RequestMapping
(
"/remove"
)
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServerHandler.java
浏览文件 @
8048b0c7
package
com
.
xxl
.
job
.
admin
.
core
.
callback
;
package
com
.
xxl
.
job
.
admin
.
core
.
callback
;
import
com.xxl.job.admin.core.model.ReturnT
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobLog
;
import
com.xxl.job.admin.core.model.XxlJobLog
;
import
com.xxl.job.admin.core.util.DynamicSchedulerUtil
;
import
com.xxl.job.admin.core.util.DynamicSchedulerUtil
;
import
com.xxl.job.core.router.model.RequestModel
;
import
com.xxl.job.core.router.model.RequestModel
;
import
com.xxl.job.core.router.model.ResponseModel
;
import
com.xxl.job.core.router.model.ResponseModel
;
import
com.xxl.job.core.util.XxlJobNetCommUtil
;
import
com.xxl.job.core.util.XxlJobNetCommUtil
;
import
org.apache.commons.lang.StringUtils
;
import
org.eclipse.jetty.server.Request
;
import
org.eclipse.jetty.server.Request
;
import
org.eclipse.jetty.server.handler.AbstractHandler
;
import
org.eclipse.jetty.server.handler.AbstractHandler
;
import
org.quartz.SchedulerException
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
javax.servlet.ServletException
;
import
javax.servlet.ServletException
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.text.MessageFormat
;
import
java.util.Date
;
import
java.util.Date
;
/**
/**
* Created by xuxueli on 2016-5-22 11:15:42
* Created by xuxueli on 2016-5-22 11:15:42
*/
*/
public
class
XxlJobLogCallbackServerHandler
extends
AbstractHandler
{
public
class
XxlJobLogCallbackServerHandler
extends
AbstractHandler
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
XxlJobLogCallbackServerHandler
.
class
);
@Override
@Override
public
void
handle
(
String
s
,
Request
baseRequest
,
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
)
throws
IOException
,
ServletException
{
public
void
handle
(
String
s
,
Request
baseRequest
,
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
)
throws
IOException
,
ServletException
{
...
@@ -33,6 +41,31 @@ public class XxlJobLogCallbackServerHandler extends AbstractHandler {
...
@@ -33,6 +41,31 @@ public class XxlJobLogCallbackServerHandler extends AbstractHandler {
ResponseModel
responseModel
=
null
;
ResponseModel
responseModel
=
null
;
XxlJobLog
log
=
DynamicSchedulerUtil
.
xxlJobLogDao
.
load
(
requestModel
.
getLogId
());
XxlJobLog
log
=
DynamicSchedulerUtil
.
xxlJobLogDao
.
load
(
requestModel
.
getLogId
());
if
(
log
!=
null
)
{
if
(
log
!=
null
)
{
// trigger success, to trigger child job, and avoid repeat trigger child job
if
(!
ResponseModel
.
SUCCESS
.
equals
(
log
.
getHandleStatus
()))
{
XxlJobInfo
xxlJobInfo
=
DynamicSchedulerUtil
.
xxlJobInfoDao
.
load
(
log
.
getJobGroup
(),
log
.
getJobName
());
if
(
xxlJobInfo
!=
null
&&
StringUtils
.
isNotBlank
(
xxlJobInfo
.
getChildJobKey
()))
{
String
[]
jobKeyArr
=
xxlJobInfo
.
getChildJobKey
().
split
(
"_"
);
if
(
jobKeyArr
!=
null
&&
jobKeyArr
.
length
==
2
)
{
XxlJobInfo
childJobInfo
=
DynamicSchedulerUtil
.
xxlJobInfoDao
.
load
(
jobKeyArr
[
0
],
jobKeyArr
[
1
]);
if
(
childJobInfo
!=
null
)
{
try
{
boolean
ret
=
DynamicSchedulerUtil
.
triggerJob
(
childJobInfo
.
getJobName
(),
childJobInfo
.
getJobGroup
());
// add msg
String
msg
=
requestModel
.
getMsg
();
msg
+=
MessageFormat
.
format
(
"<br> 触发子任务执行, jobKey:{0}, status:{1}, 描述:{2}"
,
xxlJobInfo
.
getChildJobKey
(),
ret
,
childJobInfo
.
getJobDesc
());
requestModel
.
setMsg
(
msg
);
}
catch
(
SchedulerException
e
)
{
logger
.
error
(
""
,
e
);
}
}
}
}
}
// save log
log
.
setHandleTime
(
new
Date
());
log
.
setHandleTime
(
new
Date
());
log
.
setHandleStatus
(
requestModel
.
getStatus
());
log
.
setHandleStatus
(
requestModel
.
getStatus
());
log
.
setHandleMsg
(
requestModel
.
getMsg
());
log
.
setHandleMsg
(
requestModel
.
getMsg
());
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java
浏览文件 @
8048b0c7
...
@@ -28,6 +28,8 @@ public class XxlJobInfo {
...
@@ -28,6 +28,8 @@ public class XxlJobInfo {
private
int
glueSwitch
;
// GLUE模式开关:0-否,1-是
private
int
glueSwitch
;
// GLUE模式开关:0-否,1-是
private
String
glueSource
;
// GLUE源代码
private
String
glueSource
;
// GLUE源代码
private
String
glueRemark
;
// GLUE备注
private
String
glueRemark
;
// GLUE备注
private
String
childJobKey
;
// 子任务Key
// copy from quartz
// copy from quartz
private
String
jobStatus
;
// 任务状态 【base on quartz】
private
String
jobStatus
;
// 任务状态 【base on quartz】
...
@@ -152,6 +154,14 @@ public class XxlJobInfo {
...
@@ -152,6 +154,14 @@ public class XxlJobInfo {
this
.
glueRemark
=
glueRemark
;
this
.
glueRemark
=
glueRemark
;
}
}
public
String
getChildJobKey
()
{
return
childJobKey
;
}
public
void
setChildJobKey
(
String
childJobKey
)
{
this
.
childJobKey
=
childJobKey
;
}
public
String
getJobStatus
()
{
public
String
getJobStatus
()
{
return
jobStatus
;
return
jobStatus
;
}
}
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/IXxlJobService.java
浏览文件 @
8048b0c7
...
@@ -14,10 +14,11 @@ public interface IXxlJobService {
...
@@ -14,10 +14,11 @@ public interface IXxlJobService {
public
Map
<
String
,
Object
>
pageList
(
int
start
,
int
length
,
String
jobGroup
,
String
executorHandler
,
String
filterTime
);
public
Map
<
String
,
Object
>
pageList
(
int
start
,
int
length
,
String
jobGroup
,
String
executorHandler
,
String
filterTime
);
public
ReturnT
<
String
>
add
(
String
jobGroup
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
public
ReturnT
<
String
>
add
(
String
jobGroup
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
glueSource
,
String
glueRemark
);
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
glueSource
,
String
glueRemark
,
String
childJobKey
);
public
ReturnT
<
String
>
reschedule
(
String
jobGroup
,
String
jobName
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
public
ReturnT
<
String
>
reschedule
(
String
jobGroup
,
String
jobName
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
);
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
childJobKey
);
public
ReturnT
<
String
>
remove
(
String
jobGroup
,
String
jobName
);
public
ReturnT
<
String
>
remove
(
String
jobGroup
,
String
jobName
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
浏览文件 @
8048b0c7
...
@@ -61,7 +61,8 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -61,7 +61,8 @@ public class XxlJobServiceImpl implements IXxlJobService {
@Override
@Override
public
ReturnT
<
String
>
add
(
String
jobGroup
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
public
ReturnT
<
String
>
add
(
String
jobGroup
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
glueSource
,
String
glueRemark
)
{
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
glueSource
,
String
glueRemark
,
String
childJobKey
)
{
// valid
// valid
if
(
JobGroupEnum
.
match
(
jobGroup
)
==
null
)
{
if
(
JobGroupEnum
.
match
(
jobGroup
)
==
null
)
{
return
new
ReturnT
<
String
>(
500
,
"请选择“任务组”"
);
return
new
ReturnT
<
String
>(
500
,
"请选择“任务组”"
);
...
@@ -110,6 +111,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -110,6 +111,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
jobInfo
.
setGlueSwitch
(
glueSwitch
);
jobInfo
.
setGlueSwitch
(
glueSwitch
);
jobInfo
.
setGlueSource
(
glueSource
);
jobInfo
.
setGlueSource
(
glueSource
);
jobInfo
.
setGlueRemark
(
glueRemark
);
jobInfo
.
setGlueRemark
(
glueRemark
);
jobInfo
.
setChildJobKey
(
childJobKey
);
try
{
try
{
// add job 2 quartz
// add job 2 quartz
...
@@ -128,7 +130,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -128,7 +130,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
@Override
@Override
public
ReturnT
<
String
>
reschedule
(
String
jobGroup
,
String
jobName
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
public
ReturnT
<
String
>
reschedule
(
String
jobGroup
,
String
jobName
,
String
jobCron
,
String
jobDesc
,
String
author
,
String
alarmEmail
,
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
)
{
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
childJobKey
)
{
// valid
// valid
if
(
JobGroupEnum
.
match
(
jobGroup
)
==
null
)
{
if
(
JobGroupEnum
.
match
(
jobGroup
)
==
null
)
{
...
@@ -166,6 +168,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -166,6 +168,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
jobInfo
.
setExecutorHandler
(
executorHandler
);
jobInfo
.
setExecutorHandler
(
executorHandler
);
jobInfo
.
setExecutorParam
(
executorParam
);
jobInfo
.
setExecutorParam
(
executorParam
);
jobInfo
.
setGlueSwitch
(
glueSwitch
);
jobInfo
.
setGlueSwitch
(
glueSwitch
);
jobInfo
.
setChildJobKey
(
childJobKey
);
try
{
try
{
// fresh quartz
// fresh quartz
...
...
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
浏览文件 @
8048b0c7
...
@@ -24,6 +24,8 @@
...
@@ -24,6 +24,8 @@
<result
column=
"glue_switch"
property=
"glueSwitch"
/>
<result
column=
"glue_switch"
property=
"glueSwitch"
/>
<result
column=
"glue_source"
property=
"glueSource"
/>
<result
column=
"glue_source"
property=
"glueSource"
/>
<result
column=
"glue_remark"
property=
"glueRemark"
/>
<result
column=
"glue_remark"
property=
"glueRemark"
/>
<result
column=
"child_jobkey"
property=
"childJobKey"
/>
</resultMap>
</resultMap>
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
...
@@ -41,7 +43,8 @@
...
@@ -41,7 +43,8 @@
t.executor_param,
t.executor_param,
t.glue_switch,
t.glue_switch,
t.glue_source,
t.glue_source,
t.glue_remark
t.glue_remark,
t.child_jobkey
</sql>
</sql>
<select
id=
"pageList"
parameterType=
"java.util.HashMap"
resultMap=
"XxlJobInfo"
>
<select
id=
"pageList"
parameterType=
"java.util.HashMap"
resultMap=
"XxlJobInfo"
>
...
@@ -87,7 +90,8 @@
...
@@ -87,7 +90,8 @@
executor_param,
executor_param,
glue_switch,
glue_switch,
glue_source,
glue_source,
glue_remark
glue_remark,
child_jobkey
) VALUES (
) VALUES (
#{jobGroup},
#{jobGroup},
#{jobName},
#{jobName},
...
@@ -102,7 +106,8 @@
...
@@ -102,7 +106,8 @@
#{executorParam},
#{executorParam},
#{glueSwitch},
#{glueSwitch},
#{glueSource},
#{glueSource},
#{glueRemark}
#{glueRemark},
#{childJobKey}
);
);
<selectKey
resultType=
"java.lang.Integer"
order=
"AFTER"
keyProperty=
"id"
>
<selectKey
resultType=
"java.lang.Integer"
order=
"AFTER"
keyProperty=
"id"
>
SELECT LAST_INSERT_ID()
SELECT LAST_INSERT_ID()
...
@@ -129,7 +134,8 @@
...
@@ -129,7 +134,8 @@
executor_param = #{executorParam},
executor_param = #{executorParam},
glue_switch = #{glueSwitch},
glue_switch = #{glueSwitch},
glue_source = #{glueSource},
glue_source = #{glueSource},
glue_remark = #{glueRemark}
glue_remark = #{glueRemark},
child_jobkey = #{childJobKey}
WHERE job_group = #{jobGroup}
WHERE job_group = #{jobGroup}
AND job_name = #{jobName}
AND job_name = #{jobName}
</update>
</update>
...
...
xxl-job-admin/src/main/webapp/WEB-INF/template/common/common.macro.ftl
浏览文件 @
8048b0c7
...
@@ -168,7 +168,7 @@
...
@@ -168,7 +168,7 @@
<#macro commonFooter >
<#macro commonFooter >
<footer class="main-footer">
<footer class="main-footer">
<div class="pull-right hidden-xs">
<div class="pull-right hidden-xs">
<b>Version</b> 1.
3
<b>Version</b> 1.
4
</div>
</div>
<strong>Copyright © 2015-${.now?string('yyyy')}
<strong>Copyright © 2015-${.now?string('yyyy')}
<a href="https://github.com/xuxueli/xxl-job" target="_blank" >github</a>
<a href="https://github.com/xuxueli/xxl-job" target="_blank" >github</a>
...
...
xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl
浏览文件 @
8048b0c7
...
@@ -75,6 +75,7 @@
...
@@ -75,6 +75,7 @@
<th
name=
"id"
>
id
</th>
<th
name=
"id"
>
id
</th>
<th
name=
"jobGroup"
>
jobGroup
</th>
<th
name=
"jobGroup"
>
jobGroup
</th>
<th
name=
"jobName"
>
jobName
</th>
<th
name=
"jobName"
>
jobName
</th>
<th
name=
"childJobKey"
>
任务Key
</th>
<th
name=
"jobDesc"
>
描述
</th>
<th
name=
"jobDesc"
>
描述
</th>
<th
name=
"jobCron"
>
Cron
</th>
<th
name=
"jobCron"
>
Cron
</th>
<th
name=
"executorAddress"
>
执行器地址
</th>
<th
name=
"executorAddress"
>
执行器地址
</th>
...
@@ -148,6 +149,10 @@
...
@@ -148,6 +149,10 @@
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
负责人
<font
color=
"red"
>
*
</font></label>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
负责人
<font
color=
"red"
>
*
</font></label>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"author"
placeholder=
"请输入“负责人”"
maxlength=
"50"
></div>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"author"
placeholder=
"请输入“负责人”"
maxlength=
"50"
></div>
</div>
</div>
<div
class=
"form-group"
>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
子任务Key
<font
color=
"black"
>
*
</font></label>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"childJobKey"
placeholder=
"请输入子任务的任务Key"
maxlength=
"100"
></div>
</div>
<hr>
<hr>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<div
class=
"col-sm-offset-3 col-sm-6"
>
<div
class=
"col-sm-offset-3 col-sm-6"
>
...
@@ -219,13 +224,16 @@ public class DemoJobHandler extends IJobHandler {
...
@@ -219,13 +224,16 @@ public class DemoJobHandler extends IJobHandler {
<label
for=
"firstname"
class=
"col-sm-2 control-label"
>
执行参数
<font
color=
"black"
>
*
</font></label>
<label
for=
"firstname"
class=
"col-sm-2 control-label"
>
执行参数
<font
color=
"black"
>
*
</font></label>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"executorParam"
placeholder=
"请输入“执行参数”"
maxlength=
"100"
></div>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"executorParam"
placeholder=
"请输入“执行参数”"
maxlength=
"100"
></div>
</div>
</div>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
报警邮件
<font
color=
"red"
>
*
</font></label>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
报警邮件
<font
color=
"red"
>
*
</font></label>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"alarmEmail"
placeholder=
"请输入“报警邮件”,多个邮件地址逗号分隔"
maxlength=
"100"
></div>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"alarmEmail"
placeholder=
"请输入“报警邮件”,多个邮件地址逗号分隔"
maxlength=
"100"
></div>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
负责人
<font
color=
"red"
>
*
</font></label>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
负责人
<font
color=
"red"
>
*
</font></label>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"author"
placeholder=
"请输入“负责人”"
maxlength=
"50"
></div>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"author"
placeholder=
"请输入“负责人”"
maxlength=
"50"
></div>
</div>
</div>
<div
class=
"form-group"
>
<label
for=
"lastname"
class=
"col-sm-2 control-label"
>
子任务Key
<font
color=
"black"
>
*
</font></label>
<div
class=
"col-sm-4"
><input
type=
"text"
class=
"form-control"
name=
"childJobKey"
placeholder=
"请输入子任务的任务Key"
maxlength=
"100"
></div>
</div>
<hr>
<hr>
<div
class=
"form-group"
>
<div
class=
"form-group"
>
<div
class=
"col-sm-offset-3 col-sm-6"
>
<div
class=
"col-sm-offset-3 col-sm-6"
>
...
...
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
浏览文件 @
8048b0c7
...
@@ -35,6 +35,14 @@ $(function() {
...
@@ -35,6 +35,14 @@ $(function() {
}
}
},
},
{
"data"
:
'jobName'
,
"visible"
:
false
},
{
"data"
:
'jobName'
,
"visible"
:
false
},
{
"data"
:
'childJobKey'
,
"visible"
:
true
,
"render"
:
function
(
data
,
type
,
row
)
{
var
jobKey
=
row
.
jobGroup
+
"_"
+
row
.
jobName
;
return
jobKey
;
}
},
{
"data"
:
'jobDesc'
,
"visible"
:
true
},
{
"data"
:
'jobDesc'
,
"visible"
:
true
},
{
"data"
:
'jobCron'
,
"visible"
:
true
},
{
"data"
:
'jobCron'
,
"visible"
:
true
},
{
"data"
:
'executorAddress'
,
"visible"
:
false
},
{
"data"
:
'executorAddress'
,
"visible"
:
false
},
...
@@ -103,6 +111,7 @@ $(function() {
...
@@ -103,6 +111,7 @@ $(function() {
' executorHandler="'
+
row
.
executorHandler
+
'" '
+
' executorHandler="'
+
row
.
executorHandler
+
'" '
+
' executorParam="'
+
row
.
executorParam
+
'" '
+
' executorParam="'
+
row
.
executorParam
+
'" '
+
' glueSwitch="'
+
row
.
glueSwitch
+
'" '
+
' glueSwitch="'
+
row
.
glueSwitch
+
'" '
+
' childJobKey="'
+
row
.
childJobKey
+
'" '
+
'>'
+
'>'
+
'<button class="btn btn-primary btn-xs job_operate" type="job_trigger" type="button">执行</button> '
+
'<button class="btn btn-primary btn-xs job_operate" type="job_trigger" type="button">执行</button> '
+
pause_resume
+
pause_resume
+
...
@@ -284,6 +293,8 @@ $(function() {
...
@@ -284,6 +293,8 @@ $(function() {
addModalValidate
.
resetForm
();
addModalValidate
.
resetForm
();
$
(
"#addModal .form .form-group"
).
removeClass
(
"has-error"
);
$
(
"#addModal .form .form-group"
).
removeClass
(
"has-error"
);
$
(
".remote_panel"
).
show
();
// remote
$
(
".remote_panel"
).
show
();
// remote
$
(
"#addModal .form input[name='executorHandler']"
).
removeAttr
(
"readonly"
);
});
});
// GLUE模式开启
// GLUE模式开启
...
@@ -314,6 +325,7 @@ $(function() {
...
@@ -314,6 +325,7 @@ $(function() {
$
(
"#updateModal .form input[name='executorAddress']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"executorAddress"
));
$
(
"#updateModal .form input[name='executorAddress']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"executorAddress"
));
$
(
"#updateModal .form input[name='executorHandler']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"executorHandler"
));
$
(
"#updateModal .form input[name='executorHandler']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"executorHandler"
));
$
(
"#updateModal .form input[name='executorParam']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"executorParam"
));
$
(
"#updateModal .form input[name='executorParam']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"executorParam"
));
$
(
"#updateModal .form input[name='childJobKey']"
).
val
(
$
(
this
).
parent
(
'p'
).
attr
(
"childJobKey"
));
// jobGroupTitle
// jobGroupTitle
var
jobGroupTitle
=
$
(
"#addModal .form select[name='jobGroup']"
).
find
(
"option[value='"
+
$
(
this
).
parent
(
'p'
).
attr
(
"jobGroup"
)
+
"']"
).
text
();
var
jobGroupTitle
=
$
(
"#addModal .form select[name='jobGroup']"
).
find
(
"option[value='"
+
$
(
this
).
parent
(
'p'
).
attr
(
"jobGroup"
)
+
"']"
).
text
();
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论