Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
7ccdd75d
提交
7ccdd75d
authored
5月 04, 2019
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
权限管理:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作
上级
86fbb4d1
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
85 行增加
和
15 行删除
+85
-15
JobInfoController.java
.../java/com/xxl/job/admin/controller/JobInfoController.java
+34
-3
JobLogController.java
...n/java/com/xxl/job/admin/controller/JobLogController.java
+30
-6
WebExceptionResolver.java
...l/job/admin/controller/resolver/WebExceptionResolver.java
+5
-1
XxlJobException.java
...ava/com/xxl/job/admin/core/exception/XxlJobException.java
+14
-0
application.properties
xxl-job-admin/src/main/resources/application.properties
+0
-5
message.properties
xxl-job-admin/src/main/resources/i18n/message.properties
+1
-0
message_en.properties
xxl-job-admin/src/main/resources/i18n/message_en.properties
+1
-0
没有找到文件。
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java
浏览文件 @
7ccdd75d
package
com
.
xxl
.
job
.
admin
.
controller
;
import
com.xxl.job.admin.core.exception.XxlJobException
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobUser
;
import
com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum
;
import
com.xxl.job.admin.core.thread.JobTriggerPoolHelper
;
import
com.xxl.job.admin.core.trigger.TriggerTypeEnum
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.service.LoginService
;
import
com.xxl.job.admin.service.XxlJobService
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.enums.ExecutorBlockStrategyEnum
;
import
com.xxl.job.core.glue.GlueTypeEnum
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -34,15 +42,38 @@ public class JobInfoController {
private
XxlJobService
xxlJobService
;
@RequestMapping
public
String
index
(
Model
model
,
@RequestParam
(
required
=
false
,
defaultValue
=
"-1"
)
int
jobGroup
)
{
public
String
index
(
HttpServletRequest
request
,
Model
model
,
@RequestParam
(
required
=
false
,
defaultValue
=
"-1"
)
int
jobGroup
)
{
// 枚举-字典
model
.
addAttribute
(
"ExecutorRouteStrategyEnum"
,
ExecutorRouteStrategyEnum
.
values
());
// 路由策略-列表
model
.
addAttribute
(
"GlueTypeEnum"
,
GlueTypeEnum
.
values
());
// Glue类型-字典
model
.
addAttribute
(
"ExecutorBlockStrategyEnum"
,
ExecutorBlockStrategyEnum
.
values
());
// 阻塞处理策略-字典
// 任务组
List
<
XxlJobGroup
>
jobGroupList
=
xxlJobGroupDao
.
findAll
();
// 执行器列表
List
<
XxlJobGroup
>
jobGroupList_all
=
xxlJobGroupDao
.
findAll
();
// filter group
List
<
XxlJobGroup
>
jobGroupList
=
new
ArrayList
<>();
if
(
jobGroupList_all
!=
null
&&
jobGroupList_all
.
size
()>
0
)
{
XxlJobUser
loginUser
=
(
XxlJobUser
)
request
.
getAttribute
(
LoginService
.
LOGIN_IDENTITY_KEY
);
if
(
loginUser
.
getRole
()
==
1
)
{
jobGroupList
=
jobGroupList_all
;
}
else
{
List
<
String
>
groupIdStrs
=
new
ArrayList
<>();
if
(
loginUser
.
getPermission
()!=
null
&&
loginUser
.
getPermission
().
trim
().
length
()>
0
)
{
groupIdStrs
=
Arrays
.
asList
(
loginUser
.
getPermission
().
trim
().
split
(
","
));
}
for
(
XxlJobGroup
groupItem:
jobGroupList_all
)
{
if
(
groupIdStrs
.
contains
(
String
.
valueOf
(
groupItem
.
getId
())))
{
jobGroupList
.
add
(
groupItem
);
}
}
}
}
if
(
jobGroupList
==
null
||
jobGroupList
.
size
()==
0
)
{
throw
new
XxlJobException
(
I18nUtil
.
getString
(
"jobgroup_empty"
));
}
model
.
addAttribute
(
"JobGroupList"
,
jobGroupList
);
model
.
addAttribute
(
"jobGroup"
,
jobGroup
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
浏览文件 @
7ccdd75d
package
com
.
xxl
.
job
.
admin
.
controller
;
import
com.xxl.job.admin.core.exception.XxlJobException
;
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.model.XxlJobUser
;
import
com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobInfoDao
;
import
com.xxl.job.admin.dao.XxlJobLogDao
;
import
com.xxl.job.admin.service.LoginService
;
import
com.xxl.job.core.biz.ExecutorBiz
;
import
com.xxl.job.core.biz.model.LogResult
;
import
com.xxl.job.core.biz.model.ReturnT
;
...
...
@@ -21,11 +24,9 @@ import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletRequest
;
import
java.text.ParseException
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
/**
* index controller
...
...
@@ -44,10 +45,33 @@ public class JobLogController {
public
XxlJobLogDao
xxlJobLogDao
;
@RequestMapping
public
String
index
(
Model
model
,
@RequestParam
(
required
=
false
,
defaultValue
=
"0"
)
Integer
jobId
)
{
public
String
index
(
HttpServletRequest
request
,
Model
model
,
@RequestParam
(
required
=
false
,
defaultValue
=
"0"
)
Integer
jobId
)
{
// 执行器列表
List
<
XxlJobGroup
>
jobGroupList
=
xxlJobGroupDao
.
findAll
();
List
<
XxlJobGroup
>
jobGroupList_all
=
xxlJobGroupDao
.
findAll
();
// filter group
List
<
XxlJobGroup
>
jobGroupList
=
new
ArrayList
<>();
if
(
jobGroupList_all
!=
null
&&
jobGroupList_all
.
size
()>
0
)
{
XxlJobUser
loginUser
=
(
XxlJobUser
)
request
.
getAttribute
(
LoginService
.
LOGIN_IDENTITY_KEY
);
if
(
loginUser
.
getRole
()
==
1
)
{
jobGroupList
=
jobGroupList_all
;
}
else
{
List
<
String
>
groupIdStrs
=
new
ArrayList
<>();
if
(
loginUser
.
getPermission
()!=
null
&&
loginUser
.
getPermission
().
trim
().
length
()>
0
)
{
groupIdStrs
=
Arrays
.
asList
(
loginUser
.
getPermission
().
trim
().
split
(
","
));
}
for
(
XxlJobGroup
groupItem:
jobGroupList_all
)
{
if
(
groupIdStrs
.
contains
(
String
.
valueOf
(
groupItem
.
getId
())))
{
jobGroupList
.
add
(
groupItem
);
}
}
}
}
if
(
jobGroupList
==
null
||
jobGroupList
.
size
()==
0
)
{
throw
new
XxlJobException
(
I18nUtil
.
getString
(
"jobgroup_empty"
));
}
model
.
addAttribute
(
"JobGroupList"
,
jobGroupList
);
// 任务
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java
浏览文件 @
7ccdd75d
package
com
.
xxl
.
job
.
admin
.
controller
.
resolver
;
import
com.xxl.job.admin.core.exception.XxlJobException
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.admin.core.util.JacksonUtil
;
import
org.slf4j.Logger
;
...
...
@@ -26,7 +27,10 @@ public class WebExceptionResolver implements HandlerExceptionResolver {
@Override
public
ModelAndView
resolveException
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
{
logger
.
error
(
"WebExceptionResolver:{}"
,
ex
);
if
(!(
ex
instanceof
XxlJobException
))
{
logger
.
error
(
"WebExceptionResolver:{}"
,
ex
);
}
// if json
boolean
isJson
=
false
;
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/exception/XxlJobException.java
0 → 100644
浏览文件 @
7ccdd75d
package
com
.
xxl
.
job
.
admin
.
core
.
exception
;
/**
* @author xuxueli 2019-05-04 23:19:29
*/
public
class
XxlJobException
extends
RuntimeException
{
public
XxlJobException
()
{
}
public
XxlJobException
(
String
message
)
{
super
(
message
);
}
}
xxl-job-admin/src/main/resources/application.properties
浏览文件 @
7ccdd75d
...
...
@@ -38,11 +38,6 @@ spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable
=
true
spring.mail.properties.mail.smtp.starttls.required
=
true
### xxl-job login
xxl.job.login.username
=
admin
xxl.job.login.password
=
123456
### xxl-job, access token
xxl.job.accessToken
=
...
...
xxl-job-admin/src/main/resources/i18n/message.properties
浏览文件 @
7ccdd75d
...
...
@@ -194,6 +194,7 @@ jobgroup_field_order_digits=请输入整数
jobgroup_field_orderrange
=
取值范围为1~1000
jobgroup_del_limit_0
=
拒绝删除,该执行器使用中
jobgroup_del_limit_1
=
拒绝删除, 系统至少保留一个执行器
jobgroup_empty
=
不存在有效执行器,请联系管理员
## job conf
jobconf_block_SERIAL_EXECUTION
=
单机串行
...
...
xxl-job-admin/src/main/resources/i18n/message_en.properties
浏览文件 @
7ccdd75d
...
...
@@ -194,6 +194,7 @@ jobgroup_field_order_digits=Please enter a positive integer
jobgroup_field_orderrange
=
Order is limited to 1~1000
jobgroup_del_limit_0
=
Refuse to delete, the executor is being used
jobgroup_del_limit_1
=
Refuses to delete, the system retains at least one executor
jobgroup_empty
=
There is no valid executor. Please contact the administrator
## job conf
jobconf_block_SERIAL_EXECUTION
=
Serial execution
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论