Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
168050dc
提交
168050dc
authored
6月 03, 2016
作者:
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
功能完善:
1、jetty关闭优化(来自osc上好友QQ2575029833的pr); 2、任务终止时回调优化,执行队列中的调度进行回调;
上级
37f98c9c
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
68 行增加
和
5 行删除
+68
-5
README.md
README.md
+8
-0
XxlJobLogCallbackServer.java
.../xxl/job/admin/core/callback/XxlJobLogCallbackServer.java
+12
-1
DynamicSchedulerUtil.java
...ava/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java
+10
-1
applicationcontext-xxl-job.xml
...b-admin/src/main/resources/applicationcontext-xxl-job.xml
+1
-1
XxlJobExecutor.java
.../java/com/xxl/job/core/executor/jetty/XxlJobExecutor.java
+14
-1
HandlerThread.java
...src/main/java/com/xxl/job/core/handler/HandlerThread.java
+22
-0
applicationcontext-xxl-job.xml
...example/src/main/resources/applicationcontext-xxl-job.xml
+1
-1
没有找到文件。
README.md
浏览文件 @
168050dc
...
@@ -71,6 +71,13 @@ git.osc地址:http://git.oschina.net/xuxueli0323/xxl-job
...
@@ -71,6 +71,13 @@ git.osc地址:http://git.oschina.net/xuxueli0323/xxl-job
2、执行器异步回调执行日志;
2、执行器异步回调执行日志;
3、【重要】在 “调度中心” 支持HA的基础上,扩展执行器的Failover支持,支持配置多执行期地址;
3、【重要】在 “调度中心” 支持HA的基础上,扩展执行器的Failover支持,支持配置多执行期地址;
# 规划中
1、任务终止时,任务队列中调度回调通过被终止的接口;
2、任务执行规则自定义:假如前一个任务正在执行,后续调度执行规则支持自定义;
串行(默认,当前逻辑):后续调度入调度队列;
并行:后续调度并行执行;
Pass:后续调度被Pass;
# 源码目录说明
# 源码目录说明
/xxl-job-admin 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
/xxl-job-admin 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
/xxl-job-core 公共依赖
/xxl-job-core 公共依赖
...
@@ -87,3 +94,4 @@ git.osc地址:http://git.oschina.net/xuxueli0323/xxl-job
...
@@ -87,3 +94,4 @@ git.osc地址:http://git.oschina.net/xuxueli0323/xxl-job
4、人人聚财金服;
4、人人聚财金服;
5、……
5、……
更多接入公司,欢迎在https://github.com/xuxueli/xxl-job/issues/1 登记。
更多接入公司,欢迎在https://github.com/xuxueli/xxl-job/issues/1 登记。
xxl-job-admin/src/main/java/com/xxl/job/admin/core/callback/XxlJobLogCallbackServer.java
浏览文件 @
168050dc
...
@@ -22,6 +22,7 @@ public class XxlJobLogCallbackServer {
...
@@ -22,6 +22,7 @@ public class XxlJobLogCallbackServer {
return
trigger_log_address
;
return
trigger_log_address
;
}
}
Server
server
=
null
;
public
void
start
(
int
callBackPort
)
throws
Exception
{
public
void
start
(
int
callBackPort
)
throws
Exception
{
// init address
// init address
...
@@ -32,7 +33,7 @@ public class XxlJobLogCallbackServer {
...
@@ -32,7 +33,7 @@ public class XxlJobLogCallbackServer {
new
Thread
(
new
Runnable
()
{
new
Thread
(
new
Runnable
()
{
@Override
@Override
public
void
run
()
{
public
void
run
()
{
Server
server
=
new
Server
();
server
=
new
Server
();
server
.
setThreadPool
(
new
ExecutorThreadPool
(
200
,
200
,
30000
));
// 非阻塞
server
.
setThreadPool
(
new
ExecutorThreadPool
(
200
,
200
,
30000
));
// 非阻塞
// connector
// connector
...
@@ -59,4 +60,14 @@ public class XxlJobLogCallbackServer {
...
@@ -59,4 +60,14 @@ public class XxlJobLogCallbackServer {
}
}
public
void
destroy
()
{
if
(
server
!=
null
)
{
try
{
server
.
stop
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
}
}
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/DynamicSchedulerUtil.java
浏览文件 @
168050dc
...
@@ -55,15 +55,24 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init
...
@@ -55,15 +55,24 @@ public final class DynamicSchedulerUtil implements ApplicationContextAware, Init
}
}
// init
// init
XxlJobLogCallbackServer
xxlJobLogCallbackServer
=
null
;
public
void
init
(){
public
void
init
(){
try
{
try
{
// start callback server
// start callback server
new
XxlJobLogCallbackServer
().
start
(
callBackPort
);
xxlJobLogCallbackServer
=
new
XxlJobLogCallbackServer
();
xxlJobLogCallbackServer
.
start
(
callBackPort
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
}
}
// destroy
public
void
destroy
(){
if
(
xxlJobLogCallbackServer
!=
null
)
{
xxlJobLogCallbackServer
.
destroy
();
}
}
// xxlJobLogDao、xxlJobInfoDao
// xxlJobLogDao、xxlJobInfoDao
public
static
IXxlJobLogDao
xxlJobLogDao
;
public
static
IXxlJobLogDao
xxlJobLogDao
;
public
static
IXxlJobInfoDao
xxlJobInfoDao
;
public
static
IXxlJobInfoDao
xxlJobInfoDao
;
...
...
xxl-job-admin/src/main/resources/applicationcontext-xxl-job.xml
浏览文件 @
168050dc
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
</bean>
</bean>
<!-- 协同-调度器 -->
<!-- 协同-调度器 -->
<bean
id=
"dynamicSchedulerUtil"
class=
"com.xxl.job.admin.core.util.DynamicSchedulerUtil"
init-method=
"init"
>
<bean
id=
"dynamicSchedulerUtil"
class=
"com.xxl.job.admin.core.util.DynamicSchedulerUtil"
init-method=
"init"
destroy-method=
"destroy"
>
<!-- (轻易不要变更“调度器名称”, 任务创建时会绑定该“调度器名称”) -->
<!-- (轻易不要变更“调度器名称”, 任务创建时会绑定该“调度器名称”) -->
<property
name=
"scheduler"
ref=
"quartzScheduler"
/>
<property
name=
"scheduler"
ref=
"quartzScheduler"
/>
<property
name=
"callBackPort"
value=
"8888"
/>
<property
name=
"callBackPort"
value=
"8888"
/>
...
...
xxl-job-core/src/main/java/com/xxl/job/core/executor/jetty/XxlJobExecutor.java
浏览文件 @
168050dc
...
@@ -29,12 +29,14 @@ public class XxlJobExecutor implements ApplicationContextAware {
...
@@ -29,12 +29,14 @@ public class XxlJobExecutor implements ApplicationContextAware {
this
.
port
=
port
;
this
.
port
=
port
;
}
}
// ---------------------------------- job server ------------------------------------
Server
server
=
null
;
public
void
start
()
throws
Exception
{
public
void
start
()
throws
Exception
{
new
Thread
(
new
Runnable
()
{
new
Thread
(
new
Runnable
()
{
@Override
@Override
public
void
run
()
{
public
void
run
()
{
Server
server
=
new
Server
();
server
=
new
Server
();
server
.
setThreadPool
(
new
ExecutorThreadPool
(
200
,
200
,
30000
));
// 非阻塞
server
.
setThreadPool
(
new
ExecutorThreadPool
(
200
,
200
,
30000
));
// 非阻塞
// connector
// connector
...
@@ -60,7 +62,18 @@ public class XxlJobExecutor implements ApplicationContextAware {
...
@@ -60,7 +62,18 @@ public class XxlJobExecutor implements ApplicationContextAware {
}).
start
();
}).
start
();
}
}
public
void
destroy
(){
if
(
server
!=
null
)
{
try
{
server
.
stop
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
// ---------------------------------- init job handler ------------------------------------
public
static
ApplicationContext
applicationContext
;
public
static
ApplicationContext
applicationContext
;
@Override
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
...
...
xxl-job-core/src/main/java/com/xxl/job/core/handler/HandlerThread.java
浏览文件 @
168050dc
...
@@ -96,6 +96,12 @@ public class HandlerThread extends Thread{
...
@@ -96,6 +96,12 @@ public class HandlerThread extends Thread{
params
.
put
(
"status"
,
_status
.
name
());
params
.
put
(
"status"
,
_status
.
name
());
params
.
put
(
"msg"
,
_msg
);
params
.
put
(
"msg"
,
_msg
);
HandlerRepository
.
pushCallBack
(
HttpUtil
.
addressToUrl
(
log_address
),
params
);
HandlerRepository
.
pushCallBack
(
HttpUtil
.
addressToUrl
(
log_address
),
params
);
}
else
{
HashMap
<
String
,
String
>
params
=
new
HashMap
<
String
,
String
>();
params
.
put
(
"log_id"
,
log_id
);
params
.
put
(
"status"
,
JobHandleStatus
.
FAIL
.
name
());
params
.
put
(
"msg"
,
"人工手动终止[业务运行中,被强制终止]"
);
HandlerRepository
.
pushCallBack
(
HttpUtil
.
addressToUrl
(
log_address
),
params
);
}
}
}
else
{
}
else
{
i
++;
i
++;
...
@@ -113,6 +119,22 @@ public class HandlerThread extends Thread{
...
@@ -113,6 +119,22 @@ public class HandlerThread extends Thread{
logger
.
info
(
"HandlerThread Exception:"
,
e
);
logger
.
info
(
"HandlerThread Exception:"
,
e
);
}
}
}
}
// callback trigger request in queue
while
(
handlerDataQueue
!=
null
&&
handlerDataQueue
.
size
()>
0
){
Map
<
String
,
String
>
handlerData
=
handlerDataQueue
.
poll
();
if
(
handlerData
!=
null
)
{
String
log_address
=
handlerData
.
get
(
HandlerParamEnum
.
LOG_ADDRESS
.
name
());
String
log_id
=
handlerData
.
get
(
HandlerParamEnum
.
LOG_ID
.
name
());
HashMap
<
String
,
String
>
params
=
new
HashMap
<
String
,
String
>();
params
.
put
(
"log_id"
,
log_id
);
params
.
put
(
"status"
,
JobHandleStatus
.
FAIL
.
name
());
params
.
put
(
"msg"
,
"人工手动终止[任务尚未执行,在调度队列中被终止]"
);
HandlerRepository
.
pushCallBack
(
HttpUtil
.
addressToUrl
(
log_address
),
params
);
}
}
logger
.
info
(
">>>>>>>>>>>> xxl-job handlerThrad stoped, hashCode:{}"
,
Thread
.
currentThread
());
logger
.
info
(
">>>>>>>>>>>> xxl-job handlerThrad stoped, hashCode:{}"
,
Thread
.
currentThread
());
}
}
}
}
xxl-job-executor-example/src/main/resources/applicationcontext-xxl-job.xml
浏览文件 @
168050dc
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
<context:component-scan
base-package=
"com.xxl.job.executor"
/>
<context:component-scan
base-package=
"com.xxl.job.executor"
/>
<!-- 执行器 -->
<!-- 执行器 -->
<bean
id=
"xxlJobExecutor"
class=
"com.xxl.job.core.executor.jetty.XxlJobExecutor"
init-method=
"start"
>
<bean
id=
"xxlJobExecutor"
class=
"com.xxl.job.core.executor.jetty.XxlJobExecutor"
init-method=
"start"
destroy-method=
"destroy"
>
<property
name=
"port"
value=
"9999"
/>
<property
name=
"port"
value=
"9999"
/>
</bean>
</bean>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论