Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
3f7b4d4a
提交
3f7b4d4a
authored
4月 24, 2017
作者:
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调度报表
上级
6e3e24a9
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
239 行增加
和
13 行删除
+239
-13
IndexController.java
...in/java/com/xxl/job/admin/controller/IndexController.java
+6
-0
IXxlJobLogDao.java
...in/src/main/java/com/xxl/job/admin/dao/IXxlJobLogDao.java
+4
-1
XxlJobLogDaoImpl.java
...ain/java/com/xxl/job/admin/dao/impl/XxlJobLogDaoImpl.java
+11
-2
IXxlJobService.java
...c/main/java/com/xxl/job/admin/service/IXxlJobService.java
+4
-1
XxlJobServiceImpl.java
...ava/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
+13
-2
XxlJobLogMapper.xml
...min/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
+10
-2
index.ftl
xxl-job-admin/src/main/webapp/WEB-INF/template/index.ftl
+34
-5
index.js
xxl-job-admin/src/main/webapp/static/js/index.js
+157
-0
echarts.common.min.js
.../main/webapp/static/plugins/echarts/echarts.common.min.js
+0
-0
没有找到文件。
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/IndexController.java
浏览文件 @
3f7b4d4a
...
...
@@ -35,6 +35,12 @@ public class IndexController {
return
"index"
;
}
@RequestMapping
(
"/triggerChartDate"
)
public
ReturnT
<
Map
<
String
,
Object
>>
triggerChartDate
()
{
ReturnT
<
Map
<
String
,
Object
>>
triggerChartDate
=
xxlJobService
.
triggerChartDate
();
return
triggerChartDate
;
}
@RequestMapping
(
"/toLogin"
)
@PermessionLimit
(
limit
=
false
)
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogDao.java
浏览文件 @
3f7b4d4a
...
...
@@ -4,6 +4,7 @@ import com.xxl.job.admin.core.model.XxlJobLog;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* job log
...
...
@@ -24,6 +25,8 @@ public interface IXxlJobLogDao {
public
int
delete
(
int
jobId
);
public
int
findByHandleCodeCount
(
int
handleCode
);
public
int
triggerCountByHandleCode
(
int
handleCode
);
Map
<
String
,
Integer
>
triggerCountByDay
(
Date
from
,
Date
to
);
}
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogDaoImpl.java
浏览文件 @
3f7b4d4a
...
...
@@ -9,6 +9,7 @@ import javax.annotation.Resource;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* job log
...
...
@@ -78,8 +79,16 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao {
}
@Override
public
int
findByHandleCodeCount
(
int
handleCode
)
{
return
sqlSessionTemplate
.
selectOne
(
"XxlJobLogMapper.findByHandleCodeCount"
,
handleCode
);
public
int
triggerCountByHandleCode
(
int
handleCode
)
{
return
sqlSessionTemplate
.
selectOne
(
"XxlJobLogMapper.triggerCountByHandleCode"
,
handleCode
);
}
@Override
public
Map
<
String
,
Integer
>
triggerCountByDay
(
Date
from
,
Date
to
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<
String
,
Object
>();
params
.
put
(
"from"
,
from
);
params
.
put
(
"to"
,
to
);
return
sqlSessionTemplate
.
selectOne
(
"XxlJobLogMapper.triggerCountByDay"
,
params
);
}
}
xxl-job-admin/src/main/java/com/xxl/job/admin/service/IXxlJobService.java
浏览文件 @
3f7b4d4a
...
...
@@ -27,5 +27,8 @@ public interface IXxlJobService {
public
ReturnT
<
String
>
triggerJob
(
int
id
);
Map
<
String
,
Object
>
dashboardInfo
();
public
Map
<
String
,
Object
>
dashboardInfo
();
public
ReturnT
<
Map
<
String
,
Object
>>
triggerChartDate
();
}
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
浏览文件 @
3f7b4d4a
...
...
@@ -11,6 +11,7 @@ import com.xxl.job.core.biz.model.ReturnT;
import
com.xxl.job.core.registry.RegistHelper
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.time.DateUtils
;
import
org.quartz.CronExpression
;
import
org.quartz.SchedulerException
;
import
org.slf4j.Logger
;
...
...
@@ -260,8 +261,8 @@ public class XxlJobServiceImpl implements IXxlJobService {
public
Map
<
String
,
Object
>
dashboardInfo
()
{
int
jobInfoCount
=
xxlJobInfoDao
.
findAllCount
();
int
jobLogCount
=
xxlJobLogDao
.
findByHandleCodeCount
(-
1
);
int
jobLogSuccessCount
=
xxlJobLogDao
.
findByHandleCodeCount
(
ReturnT
.
SUCCESS_CODE
);
int
jobLogCount
=
xxlJobLogDao
.
triggerCountByHandleCode
(-
1
);
int
jobLogSuccessCount
=
xxlJobLogDao
.
triggerCountByHandleCode
(
ReturnT
.
SUCCESS_CODE
);
// executor count
Set
<
String
>
executerAddressSet
=
new
HashSet
<
String
>();
...
...
@@ -291,4 +292,14 @@ public class XxlJobServiceImpl implements IXxlJobService {
return
dashboardMap
;
}
@Override
public
ReturnT
<
Map
<
String
,
Object
>>
triggerChartDate
()
{
Date
from
=
DateUtils
.
addDays
(
new
Date
(),
-
30
);
Date
to
=
new
Date
();
Map
<
String
,
Integer
>
triggerCountMap
=
xxlJobLogDao
.
triggerCountByDay
(
from
,
to
);
return
null
;
}
}
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
浏览文件 @
3f7b4d4a
...
...
@@ -124,14 +124,21 @@
WHERE job_id = #{jobId}
</delete>
<select
id=
"
findByHandleCodeCount
"
parameterType=
"java.lang.Integer"
resultType=
"java.lang.Integer"
>
<select
id=
"
triggerCountByHandleCode
"
parameterType=
"java.lang.Integer"
resultType=
"java.lang.Integer"
>
SELECT count(1)
FROM XXL_JOB_QRTZ_TRIGGER_LOG AS t
<trim
prefix=
"WHERE"
prefixOverrides=
"AND | OR"
>
<if
test=
"_parameter gt 0"
>
<if
test=
"_parameter
gt 0"
>
AND t.handle_code = #{handleCode}
</if>
</trim>
</select>
<select
id=
"triggerCountByDay"
parameterType=
"java.util.Map"
resultType=
"java.util.Map"
>
SELECT DATE_FORMAT(trigger_time,'%Y-%m-%d') triggerDay, COUNT(id) triggerCount
FROM XXL_JOB_QRTZ_TRIGGER_LOG
GROUP BY triggerDay;
</select>
</mapper>
\ No newline at end of file
xxl-job-admin/src/main/webapp/WEB-INF/template/index.ftl
浏览文件 @
3f7b4d4a
...
...
@@ -16,7 +16,7 @@
<div
class=
"content-wrapper"
>
<!-- Content Header (Page header) -->
<section
class=
"content-header"
>
<h1>
仪表盘
<small>
任务调度中心
</small></h1>
<h1>
运行报表
<small>
任务调度中心
</small></h1>
<!--
<ol class="breadcrumb">
<li><a><i class="fa fa-dashboard"></i>调度中心</a></li>
...
...
@@ -28,7 +28,7 @@
<!-- Main content -->
<section
class=
"content"
>
<!--
简要报表
-->
<!--
任务信息
-->
<div
class=
"row"
>
<
#
--
任务信息
--
>
...
...
@@ -49,7 +49,7 @@
</div>
<
#
--
调度信息
--
>
<div
class=
"col-md-4 col-sm-6 col-xs-12"
>
<div
class=
"col-md-4 col-sm-6 col-xs-12"
style=
"display: none;"
>
<div
class=
"info-box bg-yellow"
>
<span
class=
"info-box-icon"
><i
class=
"fa fa-calendar"
></i></span>
...
...
@@ -70,7 +70,7 @@
<
#
--
执行器
--
>
<div
class=
"col-md-4 col-sm-6 col-xs-12"
>
<div
class=
"info-box bg-green"
>
<span
class=
"info-box-icon"
><i
class=
"fa
fa-thumbs-o-up
"
></i></span>
<span
class=
"info-box-icon"
><i
class=
"fa
ion-ios-settings-strong
"
></i></span>
<div
class=
"info-box-content"
>
<span
class=
"info-box-text"
>
执行器数量
</span>
...
...
@@ -85,7 +85,31 @@
</div>
</div>
<!-- /.row -->
<
#
--
调度报表:时间区间筛选,左侧折线图
+
右侧饼图
--
>
<div
class=
"row"
>
<div
class=
"col-md-12"
>
<div
class=
"box"
>
<div
class=
"box-header with-border"
>
<h3
class=
"box-title"
>
调度报表
</h3>
<
#
--
<
input
type=
"text"
class=
"form-control"
id=
"filterTime"
readonly
>
-->
</div>
<div
class=
"box-body"
>
<div
class=
"row"
>
<
#
--
左侧折线图
--
>
<div
class=
"col-md-8"
>
<div
id=
"lineChart"
style=
"height: 350px;"
></div>
</div>
<
#
--
右侧饼图
--
>
<div
class=
"col-md-4"
>
<div
id=
"pieChart"
style=
"height: 350px;"
></div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- /.content -->
...
...
@@ -96,5 +120,10 @@
<
@
netCommon
.
commonFooter
/>
</div>
<
@
netCommon
.
commonScript
/>
<
#
--
<
script
src=
"${request.contextPath}/static/adminlte/plugins/daterangepicker/moment.min.js"
></script>
<script
src=
"${request.contextPath}/static/adminlte/plugins/daterangepicker/daterangepicker.js"
></script>
-->
<script
src=
"${request.contextPath}/static/plugins/echarts/echarts.common.min.js"
></script>
<script
src=
"${request.contextPath}/static/js/index.js"
></script>
</body>
</html>
xxl-job-admin/src/main/webapp/static/js/index.js
0 → 100644
浏览文件 @
3f7b4d4a
/**
* Created by xuxueli on 17/4/24.
*/
$
(
function
()
{
// lineChart
var
lineChart
=
echarts
.
init
(
document
.
getElementById
(
'lineChart'
));
lineChart
.
setOption
(
lineChartDate
());
function
lineChartDate
()
{
var
option
=
{
title
:
{
text
:
'日期分布图'
},
tooltip
:
{
trigger
:
'axis'
,
axisPointer
:
{
type
:
'cross'
,
label
:
{
backgroundColor
:
'#6a7985'
}
}
},
legend
:
{
data
:[
'成功调度次数'
,
'失败调度次数'
]
},
toolbox
:
{
feature
:
{
saveAsImage
:
{}
}
},
grid
:
{
left
:
'3%'
,
right
:
'4%'
,
bottom
:
'3%'
,
containLabel
:
true
},
xAxis
:
[
{
type
:
'category'
,
boundaryGap
:
false
,
data
:
[
'2017-10-01'
,
'2017-10-02'
,
'2017-10-03'
,
'2017-10-04'
,
'2017-10-05'
,
'2017-10-06'
,
'2017-10-07'
]
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'成功调度次数'
,
type
:
'line'
,
stack
:
'总量'
,
areaStyle
:
{
normal
:
{}},
data
:[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
]
},
{
name
:
'失败调度次数'
,
type
:
'line'
,
stack
:
'总量'
,
label
:
{
normal
:
{
show
:
true
,
position
:
'top'
}
},
areaStyle
:
{
normal
:
{}},
data
:[
120
,
132
,
101
,
134
,
90
,
230
,
210
]
}
],
color
:[
'#00A65A'
,
'#F39C12'
]
};
return
option
;
}
// pie chart
var
pieChart
=
echarts
.
init
(
document
.
getElementById
(
'pieChart'
));
pieChart
.
setOption
(
pieChartDate
());
function
pieChartDate
()
{
option
=
{
title
:
{
text
:
'调度总次数'
,
/*subtext: 'subtext',*/
x
:
'center'
},
tooltip
:
{
trigger
:
'item'
,
formatter
:
"{a} <br/>{b} : {c} ({d}%)"
},
legend
:
{
orient
:
'vertical'
,
left
:
'left'
,
data
:
[
'成功调度次数'
,
'失败调度次数'
]
},
series
:
[
{
name
:
'访问来源'
,
type
:
'pie'
,
radius
:
'55%'
,
center
:
[
'50%'
,
'60%'
],
data
:[
{
value
:
800
,
name
:
'成功调度次数'
},
{
value
:
200
,
name
:
'失败调度次数'
}
],
itemStyle
:
{
emphasis
:
{
shadowBlur
:
10
,
shadowOffsetX
:
0
,
shadowColor
:
'rgba(0, 0, 0, 0.5)'
}
}
}
],
color
:[
'#00A65A'
,
'#F39C12'
]
};
return
option
;
}
// 过滤时间
/*$('#filterTime').daterangepicker({
autoApply:false,
singleDatePicker:false,
showDropdowns:false, // 是否显示年月选择条件
timePicker: true, // 是否显示小时和分钟选择条件
timePickerIncrement: 10, // 时间的增量,单位为分钟
timePicker24Hour : true,
opens : 'left', //日期选择框的弹出位置
ranges: {
'最近1小时': [moment().subtract(1, 'hours'), moment()],
'今日': [moment().startOf('day'), moment().endOf('day')],
'昨日': [moment().subtract(1, 'days').startOf('day'), moment().subtract(1, 'days').endOf('day')],
'最近7日': [moment().subtract(6, 'days'), moment()],
'最近30日': [moment().subtract(29, 'days'), moment()],
'本月': [moment().startOf('month'), moment().endOf('month')],
'上个月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
},
locale : {
format: 'YYYY-MM-DD HH:mm:ss',
separator : ' - ',
customRangeLabel : '自定义',
applyLabel : '确定',
cancelLabel : '取消',
fromLabel : '起始时间',
toLabel : '结束时间',
daysOfWeek : [ '日', '一', '二', '三', '四', '五', '六' ],
monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月' ],
firstDay : 1,
startDate: moment().startOf('day'),
endDate: moment().endOf('day')
}
});*/
});
xxl-job-admin/src/main/webapp/static/plugins/echarts/echarts.common.min.js
0 → 100644
浏览文件 @
3f7b4d4a
This source diff could not be displayed because it is too large. You can
view the blob
instead.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论