Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
aboota
xxl-job
提交
04abd884
X
xxl-job
项目概览
aboota
/
xxl-job
与 Fork 源项目一致
从无法访问的项目Fork
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
xxl-job
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
04abd884
编写于
7月 03, 2018
作者:
许雪里
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调度全异步处理:任务触发之后,推送到调度队列,多线程并发处理调度请求,提高任务调度速率的同时,避免因网络问题导致quartz调度线程阻塞的问题;
上级
05b2a60c
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
76 addition
and
4 deletion
+76
-4
doc/XXL-JOB官方文档.md
doc/XXL-JOB官方文档.md
+1
-0
xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
...ava/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
+3
-2
xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
...m/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
+5
-0
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java
...a/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java
+59
-0
xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/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至稳定版本, 进入维护阶段
-
17、自研Log组件参数占位符改为"{}",并修复打印有参日志时参数不匹配导致报错的问题;
-
18、核心依赖Core内部国际化处理;
-
19、默认Quartz线程数调整为50;
-
20、调度全异步处理:任务触发之后,推送到调度队列,多线程并发处理调度请求,提高任务调度速率的同时,避免因网络问题导致quartz调度线程阻塞的问题;
### TODO LIST
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
浏览文件 @
04abd884
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.JobExecutionException
;
import
org.quartz.JobKey
;
...
...
@@ -26,7 +26,8 @@ public class RemoteHttpJobBean extends QuartzJobBean {
Integer
jobId
=
Integer
.
valueOf
(
jobKey
.
getName
());
// 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;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.thread.JobFailMonitorHelper
;
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.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobInfoDao
;
...
...
@@ -93,6 +94,10 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware {
}
public
void
destroy
(){
// admin trigger pool stop
JobTriggerPoolHelper
.
toStop
();
// admin registry stop
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;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.route.ExecutorRouteStrategyEnum
;
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.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobInfoDao
;
...
...
@@ -275,7 +276,11 @@ public class XxlJobServiceImpl implements XxlJobService {
@Override
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) {
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 {
} catch (SchedulerException e) {
logger.error(e.getMessage(), e);
return new ReturnT<String>(ReturnT.FAIL_CODE, e.getMessage());
}
}*/
}
@Override
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录