Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
熊鹏飞
/
xxljob220
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
d1d8d61c
authored
Jun 29, 2017
by
xuxueli
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
降低回调频率提升执行器性能
parent
bc92b4f2
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
6 deletions
doc/XXL-JOB官方文档.md
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobApiController.java
xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java
doc/XXL-JOB官方文档.md
View file @
d1d8d61c
# 《分布
式任务调度平台XXL-JOB》
# 《分布
式任务调度平台XXL-JOB》
...
@@ -866,6 +866,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
...
@@ -866,6 +866,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
5、路由策略代码重构;
-
5、路由策略代码重构;
-
6、执行器重复注册问题修复;
-
6、执行器重复注册问题修复;
-
7、任务线程轮空30次后自动销毁,降低低频任务的无效线程消耗。
-
7、任务线程轮空30次后自动销毁,降低低频任务的无效线程消耗。
-
8、执行器任务执行结果批量回调,降低回调频率提升执行器性能;
#### TODO LIST
#### TODO LIST
-
1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
-
1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
...
@@ -876,7 +877,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
...
@@ -876,7 +877,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
6、任务依赖,流程图,子任务+会签任务,各节点日志;
-
6、任务依赖,流程图,子任务+会签任务,各节点日志;
-
7、调度任务优先级;
-
7、调度任务优先级;
-
8、移除quartz依赖,重写调度模块:新增或恢复任务时将下次执行记录插入delayqueue,调度中心集群竞争分布式锁,成功节点批量加载到期delayqueue数据,批量执行。
-
8、移除quartz依赖,重写调度模块:新增或恢复任务时将下次执行记录插入delayqueue,调度中心集群竞争分布式锁,成功节点批量加载到期delayqueue数据,批量执行。
-
9、任务执行结果回调失败后重试:待定,防止回调死循环;
## 七、其他
## 七、其他
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobApiController.java
View file @
d1d8d61c
...
@@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
...
@@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.text.MessageFormat
;
import
java.text.MessageFormat
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* Created by xuxueli on 17/5/10.
* Created by xuxueli on 17/5/10.
...
@@ -43,9 +44,18 @@ public class JobApiController {
...
@@ -43,9 +44,18 @@ public class JobApiController {
@RequestMapping
(
value
=
AdminApiUtil
.
CALLBACK
,
method
=
RequestMethod
.
POST
,
consumes
=
"application/json"
)
@RequestMapping
(
value
=
AdminApiUtil
.
CALLBACK
,
method
=
RequestMethod
.
POST
,
consumes
=
"application/json"
)
@ResponseBody
@ResponseBody
@PermessionLimit
(
limit
=
false
)
@PermessionLimit
(
limit
=
false
)
public
ReturnT
<
String
>
callback
(
@RequestBody
HandleCallbackParam
handleCallbackParam
){
public
ReturnT
<
String
>
callback
(
@RequestBody
List
<
HandleCallbackParam
>
callbackParamList
){
for
(
HandleCallbackParam
handleCallbackParam:
callbackParamList
)
{
ReturnT
<
String
>
callbackResult
=
callback
(
handleCallbackParam
);
logger
.
info
(
"JobApiController.callback {}, handleCallbackParam={}, callbackResult={}"
,
(
callbackResult
.
getCode
()==
ReturnT
.
SUCCESS_CODE
?
"success"
:
"fail"
),
handleCallbackParam
,
callbackResult
);
}
return
ReturnT
.
SUCCESS
;
}
private
ReturnT
<
String
>
callback
(
HandleCallbackParam
handleCallbackParam
)
{
// valid log item
// valid log item
XxlJobLog
log
=
xxlJobLogDao
.
load
(
handleCallbackParam
.
getLogId
());
XxlJobLog
log
=
xxlJobLogDao
.
load
(
handleCallbackParam
.
getLogId
());
if
(
log
==
null
)
{
if
(
log
==
null
)
{
...
...
xxl-job-core/src/main/java/com/xxl/job/core/thread/TriggerCallbackThread.java
View file @
d1d8d61c
...
@@ -6,6 +6,8 @@ import com.xxl.job.core.util.AdminApiUtil;
...
@@ -6,6 +6,8 @@ import com.xxl.job.core.util.AdminApiUtil;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
java.util.concurrent.LinkedBlockingQueue
;
/**
/**
...
@@ -32,12 +34,19 @@ public class TriggerCallbackThread {
...
@@ -32,12 +34,19 @@ public class TriggerCallbackThread {
try
{
try
{
HandleCallbackParam
callback
=
getInstance
().
callBackQueue
.
take
();
HandleCallbackParam
callback
=
getInstance
().
callBackQueue
.
take
();
if
(
callback
!=
null
)
{
if
(
callback
!=
null
)
{
// callback
// callback list
List
<
HandleCallbackParam
>
callbackParamList
=
new
ArrayList
<
HandleCallbackParam
>();
int
drainToNum
=
getInstance
().
callBackQueue
.
drainTo
(
callbackParamList
);
callbackParamList
.
add
(
callback
);
// callback, will retry if error
try
{
try
{
ReturnT
<
String
>
callbackResult
=
AdminApiUtil
.
callApiFailover
(
AdminApiUtil
.
CALLBACK
,
callback
);
ReturnT
<
String
>
callbackResult
=
AdminApiUtil
.
callApiFailover
(
AdminApiUtil
.
CALLBACK
,
callback
ParamList
);
logger
.
info
(
">>>>>>>>>>> xxl-job callback,
HandleCallbackParam:{}, callbackResult:{}"
,
new
Object
[]{
callback
.
toString
(),
callbackResult
.
toString
()
});
logger
.
info
(
">>>>>>>>>>> xxl-job callback,
callbackParamList:{}, callbackResult:{}"
,
new
Object
[]{
callbackParamList
,
callbackResult
});
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
">>>>>>>>>>> xxl-job TriggerCallbackThread Exception:"
,
e
);
logger
.
error
(
">>>>>>>>>>> xxl-job TriggerCallbackThread Exception:"
,
e
);
//getInstance().callBackQueue.addAll(callbackParamList);
}
}
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment