Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
c00a2995
提交
c00a2995
authored
7月 18, 2019
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
任务触发组件优化,常规1s预加载一次,预加载轮空时主动休眠4s,降低加载频率以及对DB压力;
上级
bee089b8
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
16 行增加
和
10 行删除
+16
-10
XXL-JOB官方文档.md
doc/XXL-JOB官方文档.md
+1
-1
JobScheduleHelper.java
...java/com/xxl/job/admin/core/thread/JobScheduleHelper.java
+15
-9
没有找到文件。
doc/XXL-JOB官方文档.md
浏览文件 @
c00a2995
...
...
@@ -1517,7 +1517,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
6、登录界面取消默认填写的登录账号密码;
-
7、
[
ING
]
cron在线生成工具;
-
8、
[
ING
]
任务、执行器数据全量本地缓存;新增消息表广播通知;
-
9、
[
ING
]
任务触发组件优化,常规1s预加载一次,轮空时主动休眠4s
;
-
9、
任务触发组件优化,常规1s预加载一次,预加载轮空时主动休眠4s,降低加载频率以及对DB压力
;
-
10、注册监控线程优化,降低死锁几率;
-
11、调度组件优化:针对永远不会触发的Cron禁止配置和启动;任务Cron最后一次触发后再也不会触发时,比如一次性任务,主动停止相关任务;
-
12、任务列表交互优化,支持查看任务所属执行器的注册节点;
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java
浏览文件 @
c00a2995
...
...
@@ -52,9 +52,10 @@ public class JobScheduleHelper {
Connection
conn
=
null
;
while
(!
scheduleThreadToStop
)
{
//
扫描任务
//
Scan Job
long
start
=
System
.
currentTimeMillis
();
PreparedStatement
preparedStatement
=
null
;
boolean
preReadSuc
=
true
;
try
{
if
(
conn
==
null
||
conn
.
isClosed
())
{
conn
=
XxlJobAdminConfig
.
getAdminConfig
().
getDataSource
().
getConnection
();
...
...
@@ -154,6 +155,8 @@ public class JobScheduleHelper {
XxlJobAdminConfig
.
getAdminConfig
().
getXxlJobInfoDao
().
scheduleUpdate
(
jobInfo
);
}
}
else
{
preReadSuc
=
false
;
}
// tx stop
...
...
@@ -187,14 +190,17 @@ public class JobScheduleHelper {
}
long
cost
=
System
.
currentTimeMillis
()-
start
;
// next second, align second
try
{
if
(
cost
<
1000
)
{
TimeUnit
.
MILLISECONDS
.
sleep
(
1000
-
System
.
currentTimeMillis
()%
1000
);
}
}
catch
(
InterruptedException
e
)
{
if
(!
scheduleThreadToStop
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
// Wait seconds, align second
if
(
cost
<
1000
)
{
// scan-overtime, not wait
try
{
// pre-read success, exist job in 5s, wait 1s;
// pre-read fail, no exist job in 5s, wait 1s
TimeUnit
.
MILLISECONDS
.
sleep
((
preReadSuc
?
1000
:
4000
)
-
System
.
currentTimeMillis
()%
1000
);
}
catch
(
InterruptedException
e
)
{
if
(!
scheduleThreadToStop
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
}
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论