Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
eb369ec6
提交
eb369ec6
authored
10月 03, 2016
作者:
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
任务组,改为执行器
上级
087cd1d4
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
45 行增加
和
54 行删除
+45
-54
JobInfoController.java
.../java/com/xxl/job/admin/controller/JobInfoController.java
+11
-3
JobLogController.java
...n/java/com/xxl/job/admin/controller/JobLogController.java
+11
-4
Constants.java
.../main/java/com/xxl/job/admin/core/constant/Constants.java
+0
-32
JobMonitorHelper.java
.../java/com/xxl/job/admin/core/thread/JobMonitorHelper.java
+3
-3
DynamicSchedulerUtil.java
...ava/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java
+3
-0
XxlJobServiceImpl.java
...ava/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
+10
-5
jobinfo.index.ftl
...rc/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl
+5
-5
joblog.index.ftl
.../src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl
+2
-2
没有找到文件。
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java
浏览文件 @
eb369ec6
package
com
.
xxl
.
job
.
admin
.
controller
;
import
com.xxl.job.admin.core.constant.Constants.JobGroupEnum
;
import
com.xxl.job.admin.core.model.ReturnT
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.dao.IXxlJobGroupDao
;
import
com.xxl.job.admin.service.IXxlJobService
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
...
...
@@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -19,13 +21,19 @@ import java.util.Map;
@Controller
@RequestMapping
(
"/jobinfo"
)
public
class
JobInfoController
{
@Resource
private
IXxlJobGroupDao
xxlJobGroupDao
;
@Resource
private
IXxlJobService
xxlJobService
;
@RequestMapping
public
String
index
(
Model
model
)
{
model
.
addAttribute
(
"JobGroupList"
,
JobGroupEnum
.
values
());
// 任务组列表
// 任务组
List
<
XxlJobGroup
>
jobGroupList
=
xxlJobGroupDao
.
findAll
();
model
.
addAttribute
(
"JobGroupList"
,
jobGroupList
);
return
"jobinfo/jobinfo.index"
;
}
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
浏览文件 @
eb369ec6
package
com
.
xxl
.
job
.
admin
.
controller
;
import
com.xxl.job.admin.core.constant.Constants.JobGroupEnum
;
import
com.xxl.job.admin.core.model.ReturnT
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobLog
;
import
com.xxl.job.admin.dao.IXxlJobGroupDao
;
import
com.xxl.job.admin.dao.IXxlJobInfoDao
;
import
com.xxl.job.admin.dao.IXxlJobLogDao
;
import
com.xxl.job.core.router.HandlerRouter.ActionRepository
;
...
...
@@ -34,15 +35,21 @@ import java.util.Map;
public
class
JobLogController
{
@Resource
p
ublic
IXxlJobLogDao
xxlJobLog
Dao
;
p
rivate
IXxlJobGroupDao
xxlJobGroup
Dao
;
@Resource
public
IXxlJobInfoDao
xxlJobInfoDao
;
@Resource
public
IXxlJobLogDao
xxlJobLogDao
;
@RequestMapping
public
String
index
(
Model
model
,
String
jobGroup
,
String
jobName
)
{
// 任务组
List
<
XxlJobGroup
>
jobGroupList
=
xxlJobGroupDao
.
findAll
();
model
.
addAttribute
(
"jobGroup"
,
jobGroup
);
model
.
addAttribute
(
"jobName"
,
jobName
);
model
.
addAttribute
(
"JobGroupList"
,
JobGroupEnum
.
values
()
);
model
.
addAttribute
(
"JobGroupList"
,
jobGroupList
);
return
"joblog/joblog.index"
;
}
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/constant/Constants.java
deleted
100644 → 0
浏览文件 @
087cd1d4
package
com
.
xxl
.
job
.
admin
.
core
.
constant
;
/**
* job group
* @author xuxueli 2016-1-15 14:23:05
*/
public
class
Constants
{
public
enum
JobGroupEnum
{
defaults
(
"默认"
),
waimai
(
"外卖"
),
movie
(
"电影"
);
private
String
desc
;
private
JobGroupEnum
(
String
desc
){
this
.
desc
=
desc
;
}
public
String
getDesc
()
{
return
desc
;
}
public
static
JobGroupEnum
match
(
String
name
){
if
(
name
==
null
||
name
.
trim
().
length
()==
0
)
{
return
null
;
}
for
(
JobGroupEnum
group
:
JobGroupEnum
.
values
())
{
if
(
group
.
name
().
equals
(
name
))
{
return
group
;
}
}
return
null
;
}
}
}
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java
浏览文件 @
eb369ec6
package
com
.
xxl
.
job
.
admin
.
core
.
thread
;
import
com.xxl.job.admin.core.
constant.Constants
;
import
com.xxl.job.admin.core.
model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobLog
;
import
com.xxl.job.admin.core.util.DynamicSchedulerUtil
;
...
...
@@ -59,8 +59,8 @@ public class JobMonitorHelper {
Set
<
String
>
emailSet
=
new
HashSet
<
String
>(
Arrays
.
asList
(
info
.
getAlarmEmail
().
split
(
","
)));
for
(
String
email:
emailSet
)
{
String
title
=
"《调度监控报警-任务调度中心XXL-JOB》"
;
String
content
=
MessageFormat
.
format
(
"任务调度失败, 任务组:{0}, 任务描述:{1}."
,
Constants
.
JobGroupEnum
.
match
(
info
.
getJobGroup
()).
getDesc
()
,
info
.
getJobDesc
());
XxlJobGroup
group
=
DynamicSchedulerUtil
.
xxlJobGroupDao
.
load
(
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/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java
浏览文件 @
eb369ec6
...
...
@@ -4,6 +4,7 @@ import com.xxl.job.admin.core.callback.XxlJobLogCallbackServer;
import
com.xxl.job.admin.core.jobbean.RemoteHttpJobBean
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.thread.JobRegistryHelper
;
import
com.xxl.job.admin.dao.IXxlJobGroupDao
;
import
com.xxl.job.admin.dao.IXxlJobInfoDao
;
import
com.xxl.job.admin.dao.IXxlJobLogDao
;
import
com.xxl.job.admin.dao.IXxlJobRegistryDao
;
...
...
@@ -66,12 +67,14 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init
public
static
IXxlJobLogDao
xxlJobLogDao
;
public
static
IXxlJobInfoDao
xxlJobInfoDao
;
public
static
IXxlJobRegistryDao
xxlJobRegistryDao
;
public
static
IXxlJobGroupDao
xxlJobGroupDao
;
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
DynamicSchedulerUtil
.
xxlJobLogDao
=
applicationContext
.
getBean
(
IXxlJobLogDao
.
class
);
DynamicSchedulerUtil
.
xxlJobInfoDao
=
applicationContext
.
getBean
(
IXxlJobInfoDao
.
class
);
DynamicSchedulerUtil
.
xxlJobRegistryDao
=
applicationContext
.
getBean
(
IXxlJobRegistryDao
.
class
);
DynamicSchedulerUtil
.
xxlJobGroupDao
=
applicationContext
.
getBean
(
IXxlJobGroupDao
.
class
);
}
@Override
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
浏览文件 @
eb369ec6
package
com
.
xxl
.
job
.
admin
.
service
.
impl
;
import
com.xxl.job.admin.core.constant.Constants.JobGroupEnum
;
import
com.xxl.job.admin.core.model.ReturnT
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.util.DynamicSchedulerUtil
;
import
com.xxl.job.admin.dao.IXxlJobGroupDao
;
import
com.xxl.job.admin.dao.IXxlJobInfoDao
;
import
com.xxl.job.admin.dao.IXxlJobLogDao
;
import
com.xxl.job.admin.dao.IXxlJobLogGlueDao
;
...
...
@@ -31,6 +32,8 @@ import java.util.Map;
public
class
XxlJobServiceImpl
implements
IXxlJobService
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
XxlJobServiceImpl
.
class
);
@Resource
private
IXxlJobGroupDao
xxlJobGroupDao
;
@Resource
private
IXxlJobInfoDao
xxlJobInfoDao
;
@Resource
...
...
@@ -65,8 +68,9 @@ public class XxlJobServiceImpl implements IXxlJobService {
String
executorAppname
,
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
glueSource
,
String
glueRemark
,
String
childJobKey
)
{
// valid
if
(
JobGroupEnum
.
match
(
jobGroup
)
==
null
)
{
return
new
ReturnT
<
String
>(
500
,
"请选择“任务组”"
);
XxlJobGroup
group
=
xxlJobGroupDao
.
load
(
jobGroup
);
if
(
group
==
null
)
{
return
new
ReturnT
<
String
>(
500
,
"请选择“执行器”"
);
}
if
(!
CronExpression
.
isValidExpression
(
jobCron
))
{
return
new
ReturnT
<
String
>(
500
,
"请输入格式正确的“Cron”"
);
...
...
@@ -153,8 +157,9 @@ public class XxlJobServiceImpl implements IXxlJobService {
String
executorAppname
,
String
executorAddress
,
String
executorHandler
,
String
executorParam
,
int
glueSwitch
,
String
childJobKey
)
{
// valid
if
(
JobGroupEnum
.
match
(
jobGroup
)
==
null
)
{
return
new
ReturnT
<
String
>(
500
,
"请选择“任务组”"
);
XxlJobGroup
group
=
xxlJobGroupDao
.
load
(
jobGroup
);
if
(
group
==
null
)
{
return
new
ReturnT
<
String
>(
500
,
"请选择“执行器”"
);
}
if
(
StringUtils
.
isBlank
(
jobName
))
{
return
new
ReturnT
<
String
>(
500
,
"请输入“任务名”"
);
...
...
xxl-job-admin/src/main/webapp/WEB-INF/template/jobinfo/jobinfo.index.ftl
浏览文件 @
eb369ec6
...
...
@@ -40,10 +40,10 @@
<div
class=
"row"
>
<div
class=
"col-xs-4"
>
<div
class=
"input-group"
>
<span
class=
"input-group-addon"
>
任务组
</span>
<span
class=
"input-group-addon"
>
执行器
</span>
<select
class=
"form-control"
id=
"jobGroup"
>
<
#
list
JobGroupList
as
group
>
<option
value=
"${group
}"
>
${group.desc
}
</option>
<option
value=
"${group
.appName}"
>
${group.title
}
</option>
</
#
list>
</select>
</div>
...
...
@@ -115,11 +115,11 @@
<div
class=
"modal-body"
>
<form
class=
"form-horizontal form"
role=
"form"
>
<div
class=
"form-group"
>
<label
for=
"firstname"
class=
"col-sm-2 control-label"
>
任务组
<font
color=
"red"
>
*
</font></label>
<label
for=
"firstname"
class=
"col-sm-2 control-label"
>
执行器
<font
color=
"red"
>
*
</font></label>
<div
class=
"col-sm-4"
>
<select
class=
"form-control"
name=
"jobGroup"
>
<
#
list
JobGroupList
as
group
>
<option
value=
"${group
}"
>
${group.desc
}
</option>
<option
value=
"${group
.appName}"
>
${group.title
}
</option>
</
#
list>
</select>
</div>
...
...
@@ -207,7 +207,7 @@ public class DemoGlueJobHandler extends IJobHandler {
<div
class=
"modal-body"
>
<form
class=
"form-horizontal form"
role=
"form"
>
<div
class=
"form-group"
>
<label
for=
"firstname"
class=
"col-sm-2 control-label"
>
任务组
<font
color=
"red"
>
*
</font></label>
<label
for=
"firstname"
class=
"col-sm-2 control-label"
>
执行器
<font
color=
"red"
>
*
</font></label>
<div
class=
"col-sm-4"
>
<input
type=
"text"
class=
"form-control jobGroupTitle"
maxlength=
"50"
readonly
>
</div>
...
...
xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl
浏览文件 @
eb369ec6
...
...
@@ -34,11 +34,11 @@
<div
class=
"row"
>
<div
class=
"col-xs-3"
>
<div
class=
"input-group"
>
<span
class=
"input-group-addon"
>
任务组
</span>
<span
class=
"input-group-addon"
>
执行器
</span>
<select
class=
"form-control"
id=
"jobGroup"
paramVal=
"${jobGroup}"
>
<option
value=
""
selected
>
请选择
</option>
<
#
list
JobGroupList
as
group
>
<option
value=
"${group
}"
<#
if
jobGroup =
=
group
&&
false
>
selected
</
#
if>
>${group.desc
}
</option>
<option
value=
"${group
.appName}"
<#
if
jobGroup =
=
group
.
appName
&&
false
>
selected
</
#
if>
>${group.title
}
</option>
</
#
list>
</select>
</div>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论