Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
04abd884
提交
04abd884
authored
7月 03, 2018
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调度全异步处理:任务触发之后,推送到调度队列,多线程并发处理调度请求,提高任务调度速率的同时,避免因网络问题导致quartz调度线程阻塞的问题;
上级
05b2a60c
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
77 行增加
和
4 行删除
+77
-4
XXL-JOB官方文档.md
doc/XXL-JOB官方文档.md
+1
-0
RemoteHttpJobBean.java
...ava/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
+4
-2
XxlJobDynamicScheduler.java
...m/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
+5
-0
JobTriggerPoolHelper.java
...a/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java
+59
-0
XxlJobServiceImpl.java
...ava/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
+8
-2
没有找到文件。
doc/XXL-JOB官方文档.md
浏览文件 @
04abd884
...
@@ -1236,6 +1236,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
...
@@ -1236,6 +1236,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
17、自研Log组件参数占位符改为"{}",并修复打印有参日志时参数不匹配导致报错的问题;
-
17、自研Log组件参数占位符改为"{}",并修复打印有参日志时参数不匹配导致报错的问题;
-
18、核心依赖Core内部国际化处理;
-
18、核心依赖Core内部国际化处理;
-
19、默认Quartz线程数调整为50;
-
19、默认Quartz线程数调整为50;
-
20、调度全异步处理:任务触发之后,推送到调度队列,多线程并发处理调度请求,提高任务调度速率的同时,避免因网络问题导致quartz调度线程阻塞的问题;
### TODO LIST
### TODO LIST
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
浏览文件 @
04abd884
package
com
.
xxl
.
job
.
admin
.
core
.
jobbean
;
package
com
.
xxl
.
job
.
admin
.
core
.
jobbean
;
import
com.xxl.job.admin.core.t
rigger.XxlJobTrigg
er
;
import
com.xxl.job.admin.core.t
hread.JobTriggerPoolHelp
er
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.quartz.JobExecutionException
;
import
org.quartz.JobKey
;
import
org.quartz.JobKey
;
...
@@ -26,7 +26,8 @@ public class RemoteHttpJobBean extends QuartzJobBean {
...
@@ -26,7 +26,8 @@ public class RemoteHttpJobBean extends QuartzJobBean {
Integer
jobId
=
Integer
.
valueOf
(
jobKey
.
getName
());
Integer
jobId
=
Integer
.
valueOf
(
jobKey
.
getName
());
// trigger
// trigger
XxlJobTrigger
.
trigger
(
jobId
);
//XxlJobTrigger.trigger(jobId);
JobTriggerPoolHelper
.
trigger
(
jobId
);
}
}
}
}
\ No newline at end of file
xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
浏览文件 @
04abd884
...
@@ -4,6 +4,7 @@ import com.xxl.job.admin.core.jobbean.RemoteHttpJobBean;
...
@@ -4,6 +4,7 @@ import com.xxl.job.admin.core.jobbean.RemoteHttpJobBean;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.thread.JobFailMonitorHelper
;
import
com.xxl.job.admin.core.thread.JobFailMonitorHelper
;
import
com.xxl.job.admin.core.thread.JobRegistryMonitorHelper
;
import
com.xxl.job.admin.core.thread.JobRegistryMonitorHelper
;
import
com.xxl.job.admin.core.thread.JobTriggerPoolHelper
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobInfoDao
;
import
com.xxl.job.admin.dao.XxlJobInfoDao
;
...
@@ -93,6 +94,10 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware {
...
@@ -93,6 +94,10 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware {
}
}
public
void
destroy
(){
public
void
destroy
(){
// admin trigger pool stop
JobTriggerPoolHelper
.
toStop
();
// admin registry stop
// admin registry stop
JobRegistryMonitorHelper
.
getInstance
().
toStop
();
JobRegistryMonitorHelper
.
getInstance
().
toStop
();
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java
0 → 100644
浏览文件 @
04abd884
package
com
.
xxl
.
job
.
admin
.
core
.
thread
;
import
com.xxl.job.admin.core.trigger.XxlJobTrigger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
/**
* job trigger thread pool helper
*
* @author xuxueli 2018-07-03 21:08:07
*/
public
class
JobTriggerPoolHelper
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
JobTriggerPoolHelper
.
class
);
// ---------------------- trigger pool ----------------------
private
ThreadPoolExecutor
triggerPool
=
new
ThreadPoolExecutor
(
50
,
500
,
60L
,
TimeUnit
.
SECONDS
,
new
LinkedBlockingQueue
<
Runnable
>(
100000
),
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
public
void
addTrigger
(
final
int
jobId
){
triggerPool
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
XxlJobTrigger
.
trigger
(
jobId
);
}
});
}
public
void
stop
(){
//triggerPool.shutdown();
triggerPool
.
shutdownNow
();
logger
.
info
(
">>>>>>>>> xxl-job trigger thread pool shutdown success."
);
}
// ---------------------- helper ----------------------
private
static
JobTriggerPoolHelper
helper
=
new
JobTriggerPoolHelper
();
public
static
void
trigger
(
int
jobId
)
{
helper
.
addTrigger
(
jobId
);
}
public
static
void
toStop
(){
helper
.
stop
();
}
}
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
浏览文件 @
04abd884
...
@@ -5,6 +5,7 @@ import com.xxl.job.admin.core.model.XxlJobGroup;
...
@@ -5,6 +5,7 @@ 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.route.ExecutorRouteStrategyEnum
;
import
com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum
;
import
com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler
;
import
com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler
;
import
com.xxl.job.admin.core.thread.JobTriggerPoolHelper
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobInfoDao
;
import
com.xxl.job.admin.dao.XxlJobInfoDao
;
...
@@ -275,7 +276,11 @@ public class XxlJobServiceImpl implements XxlJobService {
...
@@ -275,7 +276,11 @@ public class XxlJobServiceImpl implements XxlJobService {
@Override
@Override
public
ReturnT
<
String
>
triggerJob
(
int
id
)
{
public
ReturnT
<
String
>
triggerJob
(
int
id
)
{
XxlJobInfo
xxlJobInfo
=
xxlJobInfoDao
.
loadById
(
id
);
JobTriggerPoolHelper
.
trigger
(
id
);
return
ReturnT
.
SUCCESS
;
/*XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id);
if (xxlJobInfo == null) {
if (xxlJobInfo == null) {
return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_id")+I18nUtil.getString("system_unvalid")) );
return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_id")+I18nUtil.getString("system_unvalid")) );
}
}
...
@@ -289,7 +294,8 @@ public class XxlJobServiceImpl implements XxlJobService {
...
@@ -289,7 +294,8 @@ public class XxlJobServiceImpl implements XxlJobService {
} catch (SchedulerException e) {
} catch (SchedulerException e) {
logger.error(e.getMessage(), e);
logger.error(e.getMessage(), e);
return new ReturnT<String>(ReturnT.FAIL_CODE, e.getMessage());
return new ReturnT<String>(ReturnT.FAIL_CODE, e.getMessage());
}
}*/
}
}
@Override
@Override
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论