Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
725d1f4f
提交
725d1f4f
authored
3月 02, 2017
作者:
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、任务日志表"调度状态"和"执行状态"统一为int值,修改对应表结构;
2、分布式调度器更名;
上级
b590a65c
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
38 行增加
和
38 行删除
+38
-38
AdminBizImpl.java
...rc/main/java/com/xxl/job/admin/core/biz/AdminBizImpl.java
+6
-6
RemoteHttpJobBean.java
...ava/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
+6
-6
XxlJobDynamicScheduler.java
...m/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
+7
-7
JobMonitorHelper.java
.../java/com/xxl/job/admin/core/thread/JobMonitorHelper.java
+4
-4
JobRegistryHelper.java
...java/com/xxl/job/admin/core/thread/JobRegistryHelper.java
+5
-5
XxlJobServiceImpl.java
...ava/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
+9
-9
applicationcontext-xxl-job.xml
...b-admin/src/main/resources/applicationcontext-xxl-job.xml
+1
-1
没有找到文件。
xxl-job-admin/src/main/java/com/xxl/job/admin/core/biz/AdminBizImpl.java
浏览文件 @
725d1f4f
...
@@ -2,7 +2,7 @@ package com.xxl.job.admin.core.biz;
...
@@ -2,7 +2,7 @@ package com.xxl.job.admin.core.biz;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
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.schedule.
DynamicSchedulerUtil
;
import
com.xxl.job.admin.core.schedule.
XxlJobDynamicScheduler
;
import
com.xxl.job.core.biz.AdminBiz
;
import
com.xxl.job.core.biz.AdminBiz
;
import
com.xxl.job.core.biz.model.HandleCallbackParam
;
import
com.xxl.job.core.biz.model.HandleCallbackParam
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.ReturnT
;
...
@@ -24,7 +24,7 @@ public class AdminBizImpl implements AdminBiz {
...
@@ -24,7 +24,7 @@ public class AdminBizImpl implements AdminBiz {
public
ReturnT
<
String
>
callback
(
HandleCallbackParam
handleCallbackParam
)
{
public
ReturnT
<
String
>
callback
(
HandleCallbackParam
handleCallbackParam
)
{
// valid log item
// valid log item
XxlJobLog
log
=
DynamicSchedulerUtil
.
xxlJobLogDao
.
load
(
handleCallbackParam
.
getLogId
());
XxlJobLog
log
=
XxlJobDynamicScheduler
.
xxlJobLogDao
.
load
(
handleCallbackParam
.
getLogId
());
if
(
log
==
null
)
{
if
(
log
==
null
)
{
return
new
ReturnT
(
ReturnT
.
FAIL_CODE
,
"log item not found."
);
return
new
ReturnT
(
ReturnT
.
FAIL_CODE
,
"log item not found."
);
}
}
...
@@ -32,17 +32,17 @@ public class AdminBizImpl implements AdminBiz {
...
@@ -32,17 +32,17 @@ public class AdminBizImpl implements AdminBiz {
// trigger success, to trigger child job, and avoid repeat trigger child job
// trigger success, to trigger child job, and avoid repeat trigger child job
String
childTriggerMsg
=
null
;
String
childTriggerMsg
=
null
;
if
(
ReturnT
.
SUCCESS_CODE
==
handleCallbackParam
.
getCode
()
&&
ReturnT
.
SUCCESS_CODE
!=
log
.
getHandleCode
())
{
if
(
ReturnT
.
SUCCESS_CODE
==
handleCallbackParam
.
getCode
()
&&
ReturnT
.
SUCCESS_CODE
!=
log
.
getHandleCode
())
{
XxlJobInfo
xxlJobInfo
=
DynamicSchedulerUtil
.
xxlJobInfoDao
.
load
(
log
.
getJobGroup
(),
log
.
getJobName
());
XxlJobInfo
xxlJobInfo
=
XxlJobDynamicScheduler
.
xxlJobInfoDao
.
load
(
log
.
getJobGroup
(),
log
.
getJobName
());
if
(
xxlJobInfo
!=
null
&&
StringUtils
.
isNotBlank
(
xxlJobInfo
.
getChildJobKey
()))
{
if
(
xxlJobInfo
!=
null
&&
StringUtils
.
isNotBlank
(
xxlJobInfo
.
getChildJobKey
()))
{
childTriggerMsg
=
"<hr>"
;
childTriggerMsg
=
"<hr>"
;
String
[]
childJobKeys
=
xxlJobInfo
.
getChildJobKey
().
split
(
","
);
String
[]
childJobKeys
=
xxlJobInfo
.
getChildJobKey
().
split
(
","
);
for
(
int
i
=
0
;
i
<
childJobKeys
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
childJobKeys
.
length
;
i
++)
{
String
[]
jobKeyArr
=
childJobKeys
[
i
].
split
(
"_"
);
String
[]
jobKeyArr
=
childJobKeys
[
i
].
split
(
"_"
);
if
(
jobKeyArr
!=
null
&&
jobKeyArr
.
length
==
2
)
{
if
(
jobKeyArr
!=
null
&&
jobKeyArr
.
length
==
2
)
{
XxlJobInfo
childJobInfo
=
DynamicSchedulerUtil
.
xxlJobInfoDao
.
load
(
Integer
.
valueOf
(
jobKeyArr
[
0
]),
jobKeyArr
[
1
]);
XxlJobInfo
childJobInfo
=
XxlJobDynamicScheduler
.
xxlJobInfoDao
.
load
(
Integer
.
valueOf
(
jobKeyArr
[
0
]),
jobKeyArr
[
1
]);
if
(
childJobInfo
!=
null
)
{
if
(
childJobInfo
!=
null
)
{
try
{
try
{
boolean
ret
=
DynamicSchedulerUtil
.
triggerJob
(
childJobInfo
.
getJobName
(),
String
.
valueOf
(
childJobInfo
.
getJobGroup
()));
boolean
ret
=
XxlJobDynamicScheduler
.
triggerJob
(
childJobInfo
.
getJobName
(),
String
.
valueOf
(
childJobInfo
.
getJobGroup
()));
// add msg
// add msg
childTriggerMsg
+=
MessageFormat
.
format
(
"<br> {0}/{1} 触发子任务成功, 子任务Key: {2}, status: {3}, 子任务描述: {4}"
,
childTriggerMsg
+=
MessageFormat
.
format
(
"<br> {0}/{1} 触发子任务成功, 子任务Key: {2}, status: {3}, 子任务描述: {4}"
,
...
@@ -79,7 +79,7 @@ public class AdminBizImpl implements AdminBiz {
...
@@ -79,7 +79,7 @@ public class AdminBizImpl implements AdminBiz {
log
.
setHandleTime
(
new
Date
());
log
.
setHandleTime
(
new
Date
());
log
.
setHandleCode
(
handleCallbackParam
.
getCode
());
log
.
setHandleCode
(
handleCallbackParam
.
getCode
());
log
.
setHandleMsg
(
handleMsg
.
toString
());
log
.
setHandleMsg
(
handleMsg
.
toString
());
DynamicSchedulerUtil
.
xxlJobLogDao
.
updateHandleInfo
(
log
);
XxlJobDynamicScheduler
.
xxlJobLogDao
.
updateHandleInfo
(
log
);
return
new
ReturnT
(
ReturnT
.
SUCCESS_CODE
,
null
);
return
new
ReturnT
(
ReturnT
.
SUCCESS_CODE
,
null
);
}
}
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
浏览文件 @
725d1f4f
...
@@ -3,9 +3,9 @@ package com.xxl.job.admin.core.jobbean;
...
@@ -3,9 +3,9 @@ package com.xxl.job.admin.core.jobbean;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
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.schedule.XxlJobDynamicScheduler
;
import
com.xxl.job.admin.core.thread.JobMonitorHelper
;
import
com.xxl.job.admin.core.thread.JobMonitorHelper
;
import
com.xxl.job.admin.core.thread.JobRegistryHelper
;
import
com.xxl.job.admin.core.thread.JobRegistryHelper
;
import
com.xxl.job.admin.core.schedule.DynamicSchedulerUtil
;
import
com.xxl.job.core.biz.ExecutorBiz
;
import
com.xxl.job.core.biz.ExecutorBiz
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.TriggerParam
;
import
com.xxl.job.core.biz.model.TriggerParam
;
...
@@ -36,12 +36,12 @@ public class RemoteHttpJobBean extends QuartzJobBean {
...
@@ -36,12 +36,12 @@ public class RemoteHttpJobBean extends QuartzJobBean {
throws
JobExecutionException
{
throws
JobExecutionException
{
JobKey
jobKey
=
context
.
getTrigger
().
getJobKey
();
JobKey
jobKey
=
context
.
getTrigger
().
getJobKey
();
XxlJobInfo
jobInfo
=
DynamicSchedulerUtil
.
xxlJobInfoDao
.
load
(
Integer
.
valueOf
(
jobKey
.
getGroup
()),
jobKey
.
getName
());
XxlJobInfo
jobInfo
=
XxlJobDynamicScheduler
.
xxlJobInfoDao
.
load
(
Integer
.
valueOf
(
jobKey
.
getGroup
()),
jobKey
.
getName
());
// save log
// save log
XxlJobLog
jobLog
=
new
XxlJobLog
();
XxlJobLog
jobLog
=
new
XxlJobLog
();
jobLog
.
setJobGroup
(
jobInfo
.
getJobGroup
());
jobLog
.
setJobGroup
(
jobInfo
.
getJobGroup
());
jobLog
.
setJobName
(
jobInfo
.
getJobName
());
jobLog
.
setJobName
(
jobInfo
.
getJobName
());
DynamicSchedulerUtil
.
xxlJobLogDao
.
save
(
jobLog
);
XxlJobDynamicScheduler
.
xxlJobLogDao
.
save
(
jobLog
);
logger
.
debug
(
">>>>>>>>>>> xxl-job trigger start, jobId:{}"
,
jobLog
.
getId
());
logger
.
debug
(
">>>>>>>>>>> xxl-job trigger start, jobId:{}"
,
jobLog
.
getId
());
// admin address
// admin address
...
@@ -50,7 +50,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
...
@@ -50,7 +50,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
if
(
adminAddressList
!=
null
)
{
if
(
adminAddressList
!=
null
)
{
adminAddressSet
.
addAll
(
adminAddressList
);
adminAddressSet
.
addAll
(
adminAddressList
);
}
}
adminAddressSet
.
add
(
DynamicSchedulerUtil
.
getCallbackAddress
());
adminAddressSet
.
add
(
XxlJobDynamicScheduler
.
getCallbackAddress
());
// update trigger info 1/2
// update trigger info 1/2
jobLog
.
setTriggerTime
(
new
Date
());
jobLog
.
setTriggerTime
(
new
Date
());
...
@@ -68,7 +68,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
...
@@ -68,7 +68,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
// parse address
// parse address
List
<
String
>
addressList
=
new
ArrayList
<
String
>();
List
<
String
>
addressList
=
new
ArrayList
<
String
>();
XxlJobGroup
group
=
DynamicSchedulerUtil
.
xxlJobGroupDao
.
load
(
Integer
.
valueOf
(
jobInfo
.
getJobGroup
()));
XxlJobGroup
group
=
XxlJobDynamicScheduler
.
xxlJobGroupDao
.
load
(
Integer
.
valueOf
(
jobInfo
.
getJobGroup
()));
if
(
group
!=
null
)
{
if
(
group
!=
null
)
{
addressList
=
JobRegistryHelper
.
discover
(
RegistHelper
.
RegistType
.
EXECUTOR
.
name
(),
group
.
getAppName
());
addressList
=
JobRegistryHelper
.
discover
(
RegistHelper
.
RegistType
.
EXECUTOR
.
name
(),
group
.
getAppName
());
}
}
...
@@ -82,7 +82,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
...
@@ -82,7 +82,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
// update trigger info 2/2
// update trigger info 2/2
jobLog
.
setTriggerCode
(
responseModel
.
getCode
());
jobLog
.
setTriggerCode
(
responseModel
.
getCode
());
jobLog
.
setTriggerMsg
(
responseModel
.
getMsg
());
jobLog
.
setTriggerMsg
(
responseModel
.
getMsg
());
DynamicSchedulerUtil
.
xxlJobLogDao
.
updateTriggerInfo
(
jobLog
);
XxlJobDynamicScheduler
.
xxlJobLogDao
.
updateTriggerInfo
(
jobLog
);
// monitor triger
// monitor triger
JobMonitorHelper
.
monitor
(
jobLog
.
getId
());
JobMonitorHelper
.
monitor
(
jobLog
.
getId
());
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/
DynamicSchedulerUtil
.java
→
xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/
XxlJobDynamicScheduler
.java
浏览文件 @
725d1f4f
...
@@ -29,13 +29,13 @@ import java.util.*;
...
@@ -29,13 +29,13 @@ import java.util.*;
* base quartz scheduler util
* base quartz scheduler util
* @author xuxueli 2015-12-19 16:13:53
* @author xuxueli 2015-12-19 16:13:53
*/
*/
public
final
class
DynamicSchedulerUtil
implements
ApplicationContextAware
,
InitializingBean
{
public
final
class
XxlJobDynamicScheduler
implements
ApplicationContextAware
,
InitializingBean
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
DynamicSchedulerUtil
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
XxlJobDynamicScheduler
.
class
);
// Scheduler
// Scheduler
private
static
Scheduler
scheduler
;
private
static
Scheduler
scheduler
;
public
static
void
setScheduler
(
Scheduler
scheduler
)
{
public
static
void
setScheduler
(
Scheduler
scheduler
)
{
DynamicSchedulerUtil
.
scheduler
=
scheduler
;
XxlJobDynamicScheduler
.
scheduler
=
scheduler
;
}
}
// trigger callback address
// trigger callback address
...
@@ -84,10 +84,10 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init
...
@@ -84,10 +84,10 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init
@Override
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
DynamicSchedulerUtil
.
xxlJobLogDao
=
applicationContext
.
getBean
(
IXxlJobLogDao
.
class
);
XxlJobDynamicScheduler
.
xxlJobLogDao
=
applicationContext
.
getBean
(
IXxlJobLogDao
.
class
);
DynamicSchedulerUtil
.
xxlJobInfoDao
=
applicationContext
.
getBean
(
IXxlJobInfoDao
.
class
);
XxlJobDynamicScheduler
.
xxlJobInfoDao
=
applicationContext
.
getBean
(
IXxlJobInfoDao
.
class
);
DynamicSchedulerUtil
.
xxlJobRegistryDao
=
applicationContext
.
getBean
(
IXxlJobRegistryDao
.
class
);
XxlJobDynamicScheduler
.
xxlJobRegistryDao
=
applicationContext
.
getBean
(
IXxlJobRegistryDao
.
class
);
DynamicSchedulerUtil
.
xxlJobGroupDao
=
applicationContext
.
getBean
(
IXxlJobGroupDao
.
class
);
XxlJobDynamicScheduler
.
xxlJobGroupDao
=
applicationContext
.
getBean
(
IXxlJobGroupDao
.
class
);
}
}
@Override
@Override
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobMonitorHelper.java
浏览文件 @
725d1f4f
...
@@ -3,7 +3,7 @@ package com.xxl.job.admin.core.thread;
...
@@ -3,7 +3,7 @@ package com.xxl.job.admin.core.thread;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
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.schedule.
DynamicSchedulerUtil
;
import
com.xxl.job.admin.core.schedule.
XxlJobDynamicScheduler
;
import
com.xxl.job.admin.core.util.MailUtil
;
import
com.xxl.job.admin.core.util.MailUtil
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -38,7 +38,7 @@ public class JobMonitorHelper {
...
@@ -38,7 +38,7 @@ public class JobMonitorHelper {
Integer
jobLogId
=
JobMonitorHelper
.
helper
.
queue
.
take
();
Integer
jobLogId
=
JobMonitorHelper
.
helper
.
queue
.
take
();
if
(
jobLogId
!=
null
&&
jobLogId
>
0
)
{
if
(
jobLogId
!=
null
&&
jobLogId
>
0
)
{
logger
.
info
(
">>>>>>>>>>> job monitor heat success, JobLogId:{}"
,
jobLogId
);
logger
.
info
(
">>>>>>>>>>> job monitor heat success, JobLogId:{}"
,
jobLogId
);
XxlJobLog
log
=
DynamicSchedulerUtil
.
xxlJobLogDao
.
load
(
jobLogId
);
XxlJobLog
log
=
XxlJobDynamicScheduler
.
xxlJobLogDao
.
load
(
jobLogId
);
if
(
log
!=
null
)
{
if
(
log
!=
null
)
{
if
(
ReturnT
.
SUCCESS_CODE
==
log
.
getTriggerCode
()
&&
log
.
getHandleCode
()==
0
)
{
if
(
ReturnT
.
SUCCESS_CODE
==
log
.
getTriggerCode
()
&&
log
.
getHandleCode
()==
0
)
{
// running
// running
...
@@ -53,13 +53,13 @@ public class JobMonitorHelper {
...
@@ -53,13 +53,13 @@ public class JobMonitorHelper {
// pass
// pass
}
}
if
(
ReturnT
.
FAIL_CODE
==
log
.
getTriggerCode
()||
ReturnT
.
FAIL_CODE
==
log
.
getHandleCode
())
{
if
(
ReturnT
.
FAIL_CODE
==
log
.
getTriggerCode
()||
ReturnT
.
FAIL_CODE
==
log
.
getHandleCode
())
{
XxlJobInfo
info
=
DynamicSchedulerUtil
.
xxlJobInfoDao
.
load
(
log
.
getJobGroup
(),
log
.
getJobName
());
XxlJobInfo
info
=
XxlJobDynamicScheduler
.
xxlJobInfoDao
.
load
(
log
.
getJobGroup
(),
log
.
getJobName
());
if
(
info
!=
null
&&
info
.
getAlarmEmail
()!=
null
&&
info
.
getAlarmEmail
().
trim
().
length
()>
0
)
{
if
(
info
!=
null
&&
info
.
getAlarmEmail
()!=
null
&&
info
.
getAlarmEmail
().
trim
().
length
()>
0
)
{
Set
<
String
>
emailSet
=
new
HashSet
<
String
>(
Arrays
.
asList
(
info
.
getAlarmEmail
().
split
(
","
)));
Set
<
String
>
emailSet
=
new
HashSet
<
String
>(
Arrays
.
asList
(
info
.
getAlarmEmail
().
split
(
","
)));
for
(
String
email:
emailSet
)
{
for
(
String
email:
emailSet
)
{
String
title
=
"《调度监控报警》(任务调度中心XXL-JOB)"
;
String
title
=
"《调度监控报警》(任务调度中心XXL-JOB)"
;
XxlJobGroup
group
=
DynamicSchedulerUtil
.
xxlJobGroupDao
.
load
(
Integer
.
valueOf
(
info
.
getJobGroup
()));
XxlJobGroup
group
=
XxlJobDynamicScheduler
.
xxlJobGroupDao
.
load
(
Integer
.
valueOf
(
info
.
getJobGroup
()));
String
content
=
MessageFormat
.
format
(
"任务调度失败, 执行器名称:{0}, 任务描述:{1}."
,
group
!=
null
?
group
.
getTitle
():
"null"
,
info
.
getJobDesc
());
String
content
=
MessageFormat
.
format
(
"任务调度失败, 执行器名称:{0}, 任务描述:{1}."
,
group
!=
null
?
group
.
getTitle
():
"null"
,
info
.
getJobDesc
());
MailUtil
.
sendMail
(
email
,
title
,
content
,
false
,
null
);
MailUtil
.
sendMail
(
email
,
title
,
content
,
false
,
null
);
}
}
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java
浏览文件 @
725d1f4f
package
com
.
xxl
.
job
.
admin
.
core
.
thread
;
package
com
.
xxl
.
job
.
admin
.
core
.
thread
;
import
com.xxl.job.admin.core.model.XxlJobRegistry
;
import
com.xxl.job.admin.core.model.XxlJobRegistry
;
import
com.xxl.job.admin.core.schedule.
DynamicSchedulerUtil
;
import
com.xxl.job.admin.core.schedule.
XxlJobDynamicScheduler
;
import
com.xxl.job.core.registry.RegistHelper
;
import
com.xxl.job.core.registry.RegistHelper
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -28,15 +28,15 @@ public class JobRegistryHelper {
...
@@ -28,15 +28,15 @@ public class JobRegistryHelper {
while
(
true
)
{
while
(
true
)
{
try
{
try
{
// registry admin
// registry admin
int
ret
=
DynamicSchedulerUtil
.
xxlJobRegistryDao
.
registryUpdate
(
RegistHelper
.
RegistType
.
ADMIN
.
name
(),
RegistHelper
.
RegistType
.
ADMIN
.
name
(),
DynamicSchedulerUtil
.
getCallbackAddress
());
int
ret
=
XxlJobDynamicScheduler
.
xxlJobRegistryDao
.
registryUpdate
(
RegistHelper
.
RegistType
.
ADMIN
.
name
(),
RegistHelper
.
RegistType
.
ADMIN
.
name
(),
XxlJobDynamicScheduler
.
getCallbackAddress
());
if
(
ret
<
1
)
{
if
(
ret
<
1
)
{
DynamicSchedulerUtil
.
xxlJobRegistryDao
.
registrySave
(
RegistHelper
.
RegistType
.
ADMIN
.
name
(),
RegistHelper
.
RegistType
.
ADMIN
.
name
(),
DynamicSchedulerUtil
.
getCallbackAddress
());
XxlJobDynamicScheduler
.
xxlJobRegistryDao
.
registrySave
(
RegistHelper
.
RegistType
.
ADMIN
.
name
(),
RegistHelper
.
RegistType
.
ADMIN
.
name
(),
XxlJobDynamicScheduler
.
getCallbackAddress
());
}
}
// fresh registry map
// fresh registry map
ConcurrentHashMap
<
String
,
List
<
String
>>
temp
=
new
ConcurrentHashMap
<
String
,
List
<
String
>>();
ConcurrentHashMap
<
String
,
List
<
String
>>
temp
=
new
ConcurrentHashMap
<
String
,
List
<
String
>>();
DynamicSchedulerUtil
.
xxlJobRegistryDao
.
removeDead
(
RegistHelper
.
TIMEOUT
*
2
);
XxlJobDynamicScheduler
.
xxlJobRegistryDao
.
removeDead
(
RegistHelper
.
TIMEOUT
*
2
);
List
<
XxlJobRegistry
>
list
=
DynamicSchedulerUtil
.
xxlJobRegistryDao
.
findAll
(
RegistHelper
.
TIMEOUT
*
2
);
List
<
XxlJobRegistry
>
list
=
XxlJobDynamicScheduler
.
xxlJobRegistryDao
.
findAll
(
RegistHelper
.
TIMEOUT
*
2
);
if
(
list
!=
null
)
{
if
(
list
!=
null
)
{
for
(
XxlJobRegistry
item:
list
)
{
for
(
XxlJobRegistry
item:
list
)
{
String
groupKey
=
makeGroupKey
(
item
.
getRegistryGroup
(),
item
.
getRegistryKey
());
String
groupKey
=
makeGroupKey
(
item
.
getRegistryGroup
(),
item
.
getRegistryKey
());
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
浏览文件 @
725d1f4f
...
@@ -2,7 +2,7 @@ package com.xxl.job.admin.service.impl;
...
@@ -2,7 +2,7 @@ package com.xxl.job.admin.service.impl;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.schedule.
DynamicSchedulerUtil
;
import
com.xxl.job.admin.core.schedule.
XxlJobDynamicScheduler
;
import
com.xxl.job.admin.dao.IXxlJobGroupDao
;
import
com.xxl.job.admin.dao.IXxlJobGroupDao
;
import
com.xxl.job.admin.dao.IXxlJobInfoDao
;
import
com.xxl.job.admin.dao.IXxlJobInfoDao
;
import
com.xxl.job.admin.dao.IXxlJobLogDao
;
import
com.xxl.job.admin.dao.IXxlJobLogDao
;
...
@@ -51,7 +51,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -51,7 +51,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
// fill job info
// fill job info
if
(
list
!=
null
&&
list
.
size
()>
0
)
{
if
(
list
!=
null
&&
list
.
size
()>
0
)
{
for
(
XxlJobInfo
jobInfo
:
list
)
{
for
(
XxlJobInfo
jobInfo
:
list
)
{
DynamicSchedulerUtil
.
fillJobInfo
(
jobInfo
);
XxlJobDynamicScheduler
.
fillJobInfo
(
jobInfo
);
}
}
}
}
...
@@ -106,7 +106,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -106,7 +106,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
// generate jobName
// generate jobName
String
jobName
=
FastDateFormat
.
getInstance
(
"yyyyMMddHHmmssSSSS"
).
format
(
new
Date
());
String
jobName
=
FastDateFormat
.
getInstance
(
"yyyyMMddHHmmssSSSS"
).
format
(
new
Date
());
try
{
try
{
if
(
DynamicSchedulerUtil
.
checkExists
(
jobName
,
String
.
valueOf
(
jobGroup
)))
{
if
(
XxlJobDynamicScheduler
.
checkExists
(
jobName
,
String
.
valueOf
(
jobGroup
)))
{
return
new
ReturnT
<
String
>(
500
,
"系统繁忙,请稍后重试"
);
return
new
ReturnT
<
String
>(
500
,
"系统繁忙,请稍后重试"
);
}
}
}
catch
(
SchedulerException
e1
)
{
}
catch
(
SchedulerException
e1
)
{
...
@@ -131,7 +131,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -131,7 +131,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
try
{
try
{
// add job 2 quartz
// add job 2 quartz
boolean
result
=
DynamicSchedulerUtil
.
addJob
(
String
.
valueOf
(
jobGroup
),
jobName
,
jobCron
);
boolean
result
=
XxlJobDynamicScheduler
.
addJob
(
String
.
valueOf
(
jobGroup
),
jobName
,
jobCron
);
if
(
result
)
{
if
(
result
)
{
xxlJobInfoDao
.
save
(
jobInfo
);
xxlJobInfoDao
.
save
(
jobInfo
);
return
ReturnT
.
SUCCESS
;
return
ReturnT
.
SUCCESS
;
...
@@ -200,7 +200,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -200,7 +200,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
try
{
try
{
// fresh quartz
// fresh quartz
boolean
ret
=
DynamicSchedulerUtil
.
rescheduleJob
(
String
.
valueOf
(
jobGroup
),
jobName
,
jobCron
);
boolean
ret
=
XxlJobDynamicScheduler
.
rescheduleJob
(
String
.
valueOf
(
jobGroup
),
jobName
,
jobCron
);
if
(
ret
)
{
if
(
ret
)
{
xxlJobInfoDao
.
update
(
jobInfo
);
xxlJobInfoDao
.
update
(
jobInfo
);
return
ReturnT
.
SUCCESS
;
return
ReturnT
.
SUCCESS
;
...
@@ -216,7 +216,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -216,7 +216,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
@Override
@Override
public
ReturnT
<
String
>
remove
(
int
jobGroup
,
String
jobName
)
{
public
ReturnT
<
String
>
remove
(
int
jobGroup
,
String
jobName
)
{
try
{
try
{
DynamicSchedulerUtil
.
removeJob
(
jobName
,
String
.
valueOf
(
jobGroup
));
XxlJobDynamicScheduler
.
removeJob
(
jobName
,
String
.
valueOf
(
jobGroup
));
xxlJobInfoDao
.
delete
(
jobGroup
,
jobName
);
xxlJobInfoDao
.
delete
(
jobGroup
,
jobName
);
xxlJobLogDao
.
delete
(
jobGroup
,
jobName
);
xxlJobLogDao
.
delete
(
jobGroup
,
jobName
);
xxlJobLogGlueDao
.
delete
(
jobGroup
,
jobName
);
xxlJobLogGlueDao
.
delete
(
jobGroup
,
jobName
);
...
@@ -230,7 +230,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -230,7 +230,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
@Override
@Override
public
ReturnT
<
String
>
pause
(
int
jobGroup
,
String
jobName
)
{
public
ReturnT
<
String
>
pause
(
int
jobGroup
,
String
jobName
)
{
try
{
try
{
DynamicSchedulerUtil
.
pauseJob
(
jobName
,
String
.
valueOf
(
jobGroup
));
// jobStatus do not store
XxlJobDynamicScheduler
.
pauseJob
(
jobName
,
String
.
valueOf
(
jobGroup
));
// jobStatus do not store
return
ReturnT
.
SUCCESS
;
return
ReturnT
.
SUCCESS
;
}
catch
(
SchedulerException
e
)
{
}
catch
(
SchedulerException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -241,7 +241,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -241,7 +241,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
@Override
@Override
public
ReturnT
<
String
>
resume
(
int
jobGroup
,
String
jobName
)
{
public
ReturnT
<
String
>
resume
(
int
jobGroup
,
String
jobName
)
{
try
{
try
{
DynamicSchedulerUtil
.
resumeJob
(
jobName
,
String
.
valueOf
(
jobGroup
));
XxlJobDynamicScheduler
.
resumeJob
(
jobName
,
String
.
valueOf
(
jobGroup
));
return
ReturnT
.
SUCCESS
;
return
ReturnT
.
SUCCESS
;
}
catch
(
SchedulerException
e
)
{
}
catch
(
SchedulerException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -252,7 +252,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
...
@@ -252,7 +252,7 @@ public class XxlJobServiceImpl implements IXxlJobService {
@Override
@Override
public
ReturnT
<
String
>
triggerJob
(
int
jobGroup
,
String
jobName
)
{
public
ReturnT
<
String
>
triggerJob
(
int
jobGroup
,
String
jobName
)
{
try
{
try
{
DynamicSchedulerUtil
.
triggerJob
(
jobName
,
String
.
valueOf
(
jobGroup
));
XxlJobDynamicScheduler
.
triggerJob
(
jobName
,
String
.
valueOf
(
jobGroup
));
return
ReturnT
.
SUCCESS
;
return
ReturnT
.
SUCCESS
;
}
catch
(
SchedulerException
e
)
{
}
catch
(
SchedulerException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
...
xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml
浏览文件 @
725d1f4f
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
</bean>
</bean>
<!-- 协同-调度器 -->
<!-- 协同-调度器 -->
<bean
id=
"dynamicSchedulerUtil"
class=
"com.xxl.job.admin.core.schedule.
DynamicSchedulerUtil
"
init-method=
"init"
destroy-method=
"destroy"
>
<bean
id=
"dynamicSchedulerUtil"
class=
"com.xxl.job.admin.core.schedule.
XxlJobDynamicScheduler
"
init-method=
"init"
destroy-method=
"destroy"
>
<!-- (轻易不要变更“调度器名称”, 任务创建时会绑定该“调度器名称”) -->
<!-- (轻易不要变更“调度器名称”, 任务创建时会绑定该“调度器名称”) -->
<property
name=
"scheduler"
ref=
"quartzScheduler"
/>
<property
name=
"scheduler"
ref=
"quartzScheduler"
/>
<!-- 调度中心回调IP[选填],为空则自动获取 -->
<!-- 调度中心回调IP[选填],为空则自动获取 -->
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论