Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
1bc5cc76
提交
1bc5cc76
authored
7月 28, 2017
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
访问令牌(accessToken):为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;
上级
e9566fcb
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
102 行增加
和
28 行删除
+102
-28
XXL-JOB官方文档.md
doc/XXL-JOB官方文档.md
+1
-0
JobLogController.java
...n/java/com/xxl/job/admin/controller/JobLogController.java
+3
-2
ExecutorRouter.java
...ain/java/com/xxl/job/admin/core/route/ExecutorRouter.java
+2
-1
ExecutorRouteBusyover.java
.../job/admin/core/route/strategy/ExecutorRouteBusyover.java
+2
-1
ExecutorRouteFailover.java
.../job/admin/core/route/strategy/ExecutorRouteFailover.java
+2
-1
XxlJobDynamicScheduler.java
...m/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
+12
-1
applicationcontext-xxl-job-admin.xml
...ain/resources/spring/applicationcontext-xxl-job-admin.xml
+2
-0
xxl-job-admin.properties
xxl-job-admin/src/main/resources/xxl-job-admin.properties
+5
-2
AdminBizTest.java
...dmin/src/test/java/com/xxl/job/dao/impl/AdminBizTest.java
+2
-1
XxlJobExecutor.java
...c/main/java/com/xxl/job/core/executor/XxlJobExecutor.java
+10
-4
RpcRequest.java
.../src/main/java/com/xxl/job/core/rpc/codec/RpcRequest.java
+30
-7
NetComClientProxy.java
...n/java/com/xxl/job/core/rpc/netcom/NetComClientProxy.java
+6
-3
NetComServerFactory.java
...java/com/xxl/job/core/rpc/netcom/NetComServerFactory.java
+10
-2
applicationcontext-xxl-job.xml
...example/src/main/resources/applicationcontext-xxl-job.xml
+2
-0
xxl-job-executor.properties
...or-example/src/main/resources/xxl-job-executor.properties
+5
-2
DemoJobHandlerTest.java
...c/test/java/com/xxl/executor/test/DemoJobHandlerTest.java
+2
-1
XxlJobConfig.java
...n/java/com/xxl/job/executor/core/config/XxlJobConfig.java
+3
-0
application.properties
...ingboot-example/src/main/resources/application.properties
+3
-0
没有找到文件。
doc/XXL-JOB官方文档.md
浏览文件 @
1bc5cc76
...
@@ -905,6 +905,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
...
@@ -905,6 +905,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
6、调度中心API服务改为自研RPC形式,统一底层通讯模型;
-
6、调度中心API服务改为自研RPC形式,统一底层通讯模型;
-
7、新增调度中心API服务测试Demo,方便在调度中心API扩展和测试;
-
7、新增调度中心API服务测试Demo,方便在调度中心API扩展和测试;
-
8、任务列表页交互优化,更换执行器分组时自动刷新任务列表,新建任务时默认定位在当前执行器位置;
-
8、任务列表页交互优化,更换执行器分组时自动刷新任务列表,新建任务时默认定位在当前执行器位置;
-
9、访问令牌(accessToken):为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;
#### TODO LIST
#### TODO LIST
-
1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
-
1、任务权限管理:执行器为粒度分配权限,核心操作校验权限;
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
浏览文件 @
1bc5cc76
...
@@ -3,6 +3,7 @@ package com.xxl.job.admin.controller;
...
@@ -3,6 +3,7 @@ package com.xxl.job.admin.controller;
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.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobGroupDao
;
import
com.xxl.job.admin.dao.XxlJobInfoDao
;
import
com.xxl.job.admin.dao.XxlJobInfoDao
;
import
com.xxl.job.admin.dao.XxlJobLogDao
;
import
com.xxl.job.admin.dao.XxlJobLogDao
;
...
@@ -119,7 +120,7 @@ public class JobLogController {
...
@@ -119,7 +120,7 @@ public class JobLogController {
@ResponseBody
@ResponseBody
public
ReturnT
<
LogResult
>
logDetailCat
(
String
executorAddress
,
long
triggerTime
,
int
logId
,
int
fromLineNum
){
public
ReturnT
<
LogResult
>
logDetailCat
(
String
executorAddress
,
long
triggerTime
,
int
logId
,
int
fromLineNum
){
try
{
try
{
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
executorAddress
).
getObject
();
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
executorAddress
,
XxlJobDynamicScheduler
.
getAccessToken
()
).
getObject
();
ReturnT
<
LogResult
>
logResult
=
executorBiz
.
log
(
triggerTime
,
logId
,
fromLineNum
);
ReturnT
<
LogResult
>
logResult
=
executorBiz
.
log
(
triggerTime
,
logId
,
fromLineNum
);
// is end
// is end
...
@@ -153,7 +154,7 @@ public class JobLogController {
...
@@ -153,7 +154,7 @@ public class JobLogController {
// request of kill
// request of kill
ReturnT
<
String
>
runResult
=
null
;
ReturnT
<
String
>
runResult
=
null
;
try
{
try
{
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
log
.
getExecutorAddress
()).
getObject
();
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
log
.
getExecutorAddress
()
,
XxlJobDynamicScheduler
.
getAccessToken
()
).
getObject
();
runResult
=
executorBiz
.
kill
(
jobInfo
.
getId
());
runResult
=
executorBiz
.
kill
(
jobInfo
.
getId
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
logger
.
error
(
e
.
getMessage
(),
e
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java
浏览文件 @
1bc5cc76
package
com
.
xxl
.
job
.
admin
.
core
.
route
;
package
com
.
xxl
.
job
.
admin
.
core
.
route
;
import
com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler
;
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
;
...
@@ -33,7 +34,7 @@ public abstract class ExecutorRouter {
...
@@ -33,7 +34,7 @@ public abstract class ExecutorRouter {
public
static
ReturnT
<
String
>
runExecutor
(
TriggerParam
triggerParam
,
String
address
){
public
static
ReturnT
<
String
>
runExecutor
(
TriggerParam
triggerParam
,
String
address
){
ReturnT
<
String
>
runResult
=
null
;
ReturnT
<
String
>
runResult
=
null
;
try
{
try
{
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
address
).
getObject
();
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
address
,
XxlJobDynamicScheduler
.
getAccessToken
()
).
getObject
();
runResult
=
executorBiz
.
run
(
triggerParam
);
runResult
=
executorBiz
.
run
(
triggerParam
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
logger
.
error
(
e
.
getMessage
(),
e
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java
浏览文件 @
1bc5cc76
package
com
.
xxl
.
job
.
admin
.
core
.
route
.
strategy
;
package
com
.
xxl
.
job
.
admin
.
core
.
route
.
strategy
;
import
com.xxl.job.admin.core.route.ExecutorRouter
;
import
com.xxl.job.admin.core.route.ExecutorRouter
;
import
com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler
;
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
;
...
@@ -25,7 +26,7 @@ public class ExecutorRouteBusyover extends ExecutorRouter {
...
@@ -25,7 +26,7 @@ public class ExecutorRouteBusyover extends ExecutorRouter {
// beat
// beat
ReturnT
<
String
>
idleBeatResult
=
null
;
ReturnT
<
String
>
idleBeatResult
=
null
;
try
{
try
{
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
address
).
getObject
();
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
address
,
XxlJobDynamicScheduler
.
getAccessToken
()
).
getObject
();
idleBeatResult
=
executorBiz
.
idleBeat
(
triggerParam
.
getJobId
());
idleBeatResult
=
executorBiz
.
idleBeat
(
triggerParam
.
getJobId
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
logger
.
error
(
e
.
getMessage
(),
e
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java
浏览文件 @
1bc5cc76
package
com
.
xxl
.
job
.
admin
.
core
.
route
.
strategy
;
package
com
.
xxl
.
job
.
admin
.
core
.
route
.
strategy
;
import
com.xxl.job.admin.core.route.ExecutorRouter
;
import
com.xxl.job.admin.core.route.ExecutorRouter
;
import
com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler
;
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
;
...
@@ -25,7 +26,7 @@ public class ExecutorRouteFailover extends ExecutorRouter {
...
@@ -25,7 +26,7 @@ public class ExecutorRouteFailover extends ExecutorRouter {
// beat
// beat
ReturnT
<
String
>
beatResult
=
null
;
ReturnT
<
String
>
beatResult
=
null
;
try
{
try
{
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
address
).
getObject
();
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
address
,
XxlJobDynamicScheduler
.
getAccessToken
()
).
getObject
();
beatResult
=
executorBiz
.
beat
();
beatResult
=
executorBiz
.
beat
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
logger
.
error
(
e
.
getMessage
(),
e
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/schedule/XxlJobDynamicScheduler.java
浏览文件 @
1bc5cc76
...
@@ -36,7 +36,16 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware, In
...
@@ -36,7 +36,16 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware, In
public
void
setScheduler
(
Scheduler
scheduler
)
{
public
void
setScheduler
(
Scheduler
scheduler
)
{
XxlJobDynamicScheduler
.
scheduler
=
scheduler
;
XxlJobDynamicScheduler
.
scheduler
=
scheduler
;
}
}
// accessToken
private
static
String
accessToken
;
public
void
setAccessToken
(
String
accessToken
)
{
this
.
accessToken
=
accessToken
;
}
public
static
String
getAccessToken
()
{
return
accessToken
;
}
// init
// init
public
void
init
()
throws
Exception
{
public
void
init
()
throws
Exception
{
// admin registry monitor run
// admin registry monitor run
...
@@ -47,6 +56,8 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware, In
...
@@ -47,6 +56,8 @@ public final class XxlJobDynamicScheduler implements ApplicationContextAware, In
// rpc-service, base on spring-mvc
// rpc-service, base on spring-mvc
NetComServerFactory
.
putService
(
AdminBiz
.
class
,
XxlJobDynamicScheduler
.
adminBiz
);
NetComServerFactory
.
putService
(
AdminBiz
.
class
,
XxlJobDynamicScheduler
.
adminBiz
);
NetComServerFactory
.
setAccessToken
(
accessToken
);
}
}
// destroy
// destroy
...
...
xxl-job-admin/src/main/resources/spring/applicationcontext-xxl-job-admin.xml
浏览文件 @
1bc5cc76
...
@@ -65,6 +65,7 @@
...
@@ -65,6 +65,7 @@
<bean
id=
"xxlJobDynamicScheduler"
class=
"com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler"
init-method=
"init"
destroy-method=
"destroy"
>
<bean
id=
"xxlJobDynamicScheduler"
class=
"com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler"
init-method=
"init"
destroy-method=
"destroy"
>
<!-- (轻易不要变更“调度器名称”, 任务创建时会绑定该“调度器名称”) -->
<!-- (轻易不要变更“调度器名称”, 任务创建时会绑定该“调度器名称”) -->
<property
name=
"scheduler"
ref=
"quartzScheduler"
/>
<property
name=
"scheduler"
ref=
"quartzScheduler"
/>
<property
name=
"accessToken"
value=
"${xxl.job.accessToken}"
/>
</bean>
</bean>
</beans>
</beans>
\ No newline at end of file
xxl-job-admin/src/main/resources/xxl-job-admin.properties
浏览文件 @
1bc5cc76
...
@@ -14,4 +14,7 @@ xxl.job.mail.sendNick=《任务调度平台XXL-JOB》
...
@@ -14,4 +14,7 @@ xxl.job.mail.sendNick=《任务调度平台XXL-JOB》
# xxl-job login
# xxl-job login
xxl.job.login.username
=
admin
xxl.job.login.username
=
admin
xxl.job.login.password
=
123456
xxl.job.login.password
=
123456
\ No newline at end of file
# xxl-job, access token
xxl.job.accessToken
=
\ No newline at end of file
xxl-job-admin/src/test/java/com/xxl/job/dao/impl/AdminBizTest.java
浏览文件 @
1bc5cc76
...
@@ -19,7 +19,8 @@ public class AdminBizTest {
...
@@ -19,7 +19,8 @@ public class AdminBizTest {
// admin-client
// admin-client
String
addressUrl
=
"http://127.0.0.1:8080/xxl-job-admin"
.
concat
(
AdminBiz
.
MAPPING
);
String
addressUrl
=
"http://127.0.0.1:8080/xxl-job-admin"
.
concat
(
AdminBiz
.
MAPPING
);
AdminBiz
adminBiz
=
(
AdminBiz
)
new
NetComClientProxy
(
AdminBiz
.
class
,
addressUrl
).
getObject
();
String
accessToken
=
null
;
AdminBiz
adminBiz
=
(
AdminBiz
)
new
NetComClientProxy
(
AdminBiz
.
class
,
addressUrl
,
accessToken
).
getObject
();
// test executor registry
// test executor registry
RegistryParam
registryParam
=
new
RegistryParam
(
RegistryConfig
.
RegistType
.
EXECUTOR
.
name
(),
"xxl-job-executor-example"
,
"127.0.0.1:9999"
);
RegistryParam
registryParam
=
new
RegistryParam
(
RegistryConfig
.
RegistType
.
EXECUTOR
.
name
(),
"xxl-job-executor-example"
,
"127.0.0.1:9999"
);
...
...
xxl-job-core/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java
浏览文件 @
1bc5cc76
...
@@ -34,7 +34,8 @@ public class XxlJobExecutor implements ApplicationContextAware, ApplicationListe
...
@@ -34,7 +34,8 @@ public class XxlJobExecutor implements ApplicationContextAware, ApplicationListe
private
int
port
=
9999
;
private
int
port
=
9999
;
private
String
appName
;
private
String
appName
;
private
String
adminAddresses
;
private
String
adminAddresses
;
public
static
String
logPath
;
private
String
accessToken
;
public
static
String
logPath
=
"/data/applogs/xxl-job/jobhandler/"
;
public
void
setIp
(
String
ip
)
{
public
void
setIp
(
String
ip
)
{
this
.
ip
=
ip
;
this
.
ip
=
ip
;
...
@@ -48,18 +49,21 @@ public class XxlJobExecutor implements ApplicationContextAware, ApplicationListe
...
@@ -48,18 +49,21 @@ public class XxlJobExecutor implements ApplicationContextAware, ApplicationListe
public
void
setAdminAddresses
(
String
adminAddresses
)
{
public
void
setAdminAddresses
(
String
adminAddresses
)
{
this
.
adminAddresses
=
adminAddresses
;
this
.
adminAddresses
=
adminAddresses
;
}
}
public
void
setAccessToken
(
String
accessToken
)
{
this
.
accessToken
=
accessToken
;
}
public
void
setLogPath
(
String
logPath
)
{
public
void
setLogPath
(
String
logPath
)
{
this
.
logPath
=
logPath
;
this
.
logPath
=
logPath
;
}
}
// ---------------------------------- admin-client ------------------------------------
// ---------------------------------- admin-client ------------------------------------
private
static
List
<
AdminBiz
>
adminBizList
;
private
static
List
<
AdminBiz
>
adminBizList
;
private
static
void
initAdminBizList
(
String
adminAddresses
)
throws
Exception
{
private
static
void
initAdminBizList
(
String
adminAddresses
,
String
accessToken
)
throws
Exception
{
if
(
adminAddresses
!=
null
&&
adminAddresses
.
trim
().
length
()>
0
)
{
if
(
adminAddresses
!=
null
&&
adminAddresses
.
trim
().
length
()>
0
)
{
for
(
String
address:
adminAddresses
.
trim
().
split
(
","
))
{
for
(
String
address:
adminAddresses
.
trim
().
split
(
","
))
{
if
(
address
!=
null
&&
address
.
trim
().
length
()>
0
)
{
if
(
address
!=
null
&&
address
.
trim
().
length
()>
0
)
{
String
addressUrl
=
address
.
concat
(
AdminBiz
.
MAPPING
);
String
addressUrl
=
address
.
concat
(
AdminBiz
.
MAPPING
);
AdminBiz
adminBiz
=
(
AdminBiz
)
new
NetComClientProxy
(
AdminBiz
.
class
,
addressUrl
).
getObject
();
AdminBiz
adminBiz
=
(
AdminBiz
)
new
NetComClientProxy
(
AdminBiz
.
class
,
addressUrl
,
accessToken
).
getObject
();
if
(
adminBizList
==
null
)
{
if
(
adminBizList
==
null
)
{
adminBizList
=
new
ArrayList
<
AdminBiz
>();
adminBizList
=
new
ArrayList
<
AdminBiz
>();
}
}
...
@@ -76,12 +80,14 @@ public class XxlJobExecutor implements ApplicationContextAware, ApplicationListe
...
@@ -76,12 +80,14 @@ public class XxlJobExecutor implements ApplicationContextAware, ApplicationListe
private
NetComServerFactory
serverFactory
=
new
NetComServerFactory
();
private
NetComServerFactory
serverFactory
=
new
NetComServerFactory
();
public
void
start
()
throws
Exception
{
public
void
start
()
throws
Exception
{
// init admin-client
// init admin-client
initAdminBizList
(
adminAddresses
);
initAdminBizList
(
adminAddresses
,
accessToken
);
// executor start
// executor start
NetComServerFactory
.
putService
(
ExecutorBiz
.
class
,
new
ExecutorBizImpl
());
// rpc-service, base on jetty
NetComServerFactory
.
putService
(
ExecutorBiz
.
class
,
new
ExecutorBizImpl
());
// rpc-service, base on jetty
NetComServerFactory
.
setAccessToken
(
accessToken
);
serverFactory
.
start
(
port
,
ip
,
appName
);
serverFactory
.
start
(
port
,
ip
,
appName
);
// trigger callback thread start
// trigger callback thread start
TriggerCallbackThread
.
getInstance
().
start
();
TriggerCallbackThread
.
getInstance
().
start
();
}
}
...
...
xxl-job-core/src/main/java/com/xxl/job/core/rpc/codec/RpcRequest.java
浏览文件 @
1bc5cc76
...
@@ -12,12 +12,14 @@ public class RpcRequest implements Serializable{
...
@@ -12,12 +12,14 @@ public class RpcRequest implements Serializable{
private
String
serverAddress
;
private
String
serverAddress
;
private
long
createMillisTime
;
private
long
createMillisTime
;
private
String
accessToken
;
private
String
className
;
private
String
className
;
private
String
methodName
;
private
String
methodName
;
private
Class
<?>[]
parameterTypes
;
private
Class
<?>[]
parameterTypes
;
private
Object
[]
parameters
;
private
Object
[]
parameters
;
public
String
getServerAddress
()
{
public
String
getServerAddress
()
{
return
serverAddress
;
return
serverAddress
;
}
}
...
@@ -29,41 +31,62 @@ public class RpcRequest implements Serializable{
...
@@ -29,41 +31,62 @@ public class RpcRequest implements Serializable{
public
long
getCreateMillisTime
()
{
public
long
getCreateMillisTime
()
{
return
createMillisTime
;
return
createMillisTime
;
}
}
public
void
setCreateMillisTime
(
long
createMillisTime
)
{
public
void
setCreateMillisTime
(
long
createMillisTime
)
{
this
.
createMillisTime
=
createMillisTime
;
this
.
createMillisTime
=
createMillisTime
;
}
}
public
String
getAccessToken
()
{
return
accessToken
;
}
public
void
setAccessToken
(
String
accessToken
)
{
this
.
accessToken
=
accessToken
;
}
public
String
getClassName
()
{
public
String
getClassName
()
{
return
className
;
return
className
;
}
}
public
void
setClassName
(
String
className
)
{
public
void
setClassName
(
String
className
)
{
this
.
className
=
className
;
this
.
className
=
className
;
}
}
public
String
getMethodName
()
{
public
String
getMethodName
()
{
return
methodName
;
return
methodName
;
}
}
public
void
setMethodName
(
String
methodName
)
{
public
void
setMethodName
(
String
methodName
)
{
this
.
methodName
=
methodName
;
this
.
methodName
=
methodName
;
}
}
public
Class
<?>[]
getParameterTypes
()
{
public
Class
<?>[]
getParameterTypes
()
{
return
parameterTypes
;
return
parameterTypes
;
}
}
public
void
setParameterTypes
(
Class
<?>[]
parameterTypes
)
{
public
void
setParameterTypes
(
Class
<?>[]
parameterTypes
)
{
this
.
parameterTypes
=
parameterTypes
;
this
.
parameterTypes
=
parameterTypes
;
}
}
public
Object
[]
getParameters
()
{
public
Object
[]
getParameters
()
{
return
parameters
;
return
parameters
;
}
}
public
void
setParameters
(
Object
[]
parameters
)
{
public
void
setParameters
(
Object
[]
parameters
)
{
this
.
parameters
=
parameters
;
this
.
parameters
=
parameters
;
}
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"NettyRequest [serverAddress="
+
serverAddress
+
", createMillisTime="
return
"RpcRequest{"
+
+
createMillisTime
+
", className="
+
className
"serverAddress='"
+
serverAddress
+
'\''
+
+
", methodName="
+
methodName
+
", parameterTypes="
", createMillisTime="
+
createMillisTime
+
+
Arrays
.
toString
(
parameterTypes
)
+
", parameters="
", accessToken='"
+
accessToken
+
'\''
+
+
Arrays
.
toString
(
parameters
)
+
"]"
;
", className='"
+
className
+
'\''
+
", methodName='"
+
methodName
+
'\''
+
", parameterTypes="
+
Arrays
.
toString
(
parameterTypes
)
+
", parameters="
+
Arrays
.
toString
(
parameters
)
+
'}'
;
}
}
}
}
xxl-job-core/src/main/java/com/xxl/job/core/rpc/netcom/NetComClientProxy.java
浏览文件 @
1bc5cc76
...
@@ -20,11 +20,13 @@ public class NetComClientProxy implements FactoryBean<Object> {
...
@@ -20,11 +20,13 @@ public class NetComClientProxy implements FactoryBean<Object> {
// ---------------------- config ----------------------
// ---------------------- config ----------------------
private
Class
<?>
iface
;
private
Class
<?>
iface
;
String
serverAddress
;
private
String
serverAddress
;
JettyClient
client
=
new
JettyClient
();
private
String
accessToken
;
public
NetComClientProxy
(
Class
<?>
iface
,
String
serverAddress
)
{
private
JettyClient
client
=
new
JettyClient
();
public
NetComClientProxy
(
Class
<?>
iface
,
String
serverAddress
,
String
accessToken
)
{
this
.
iface
=
iface
;
this
.
iface
=
iface
;
this
.
serverAddress
=
serverAddress
;
this
.
serverAddress
=
serverAddress
;
this
.
accessToken
=
accessToken
;
}
}
@Override
@Override
...
@@ -39,6 +41,7 @@ public class NetComClientProxy implements FactoryBean<Object> {
...
@@ -39,6 +41,7 @@ public class NetComClientProxy implements FactoryBean<Object> {
RpcRequest
request
=
new
RpcRequest
();
RpcRequest
request
=
new
RpcRequest
();
request
.
setServerAddress
(
serverAddress
);
request
.
setServerAddress
(
serverAddress
);
request
.
setCreateMillisTime
(
System
.
currentTimeMillis
());
request
.
setCreateMillisTime
(
System
.
currentTimeMillis
());
request
.
setAccessToken
(
accessToken
);
request
.
setClassName
(
method
.
getDeclaringClass
().
getName
());
request
.
setClassName
(
method
.
getDeclaringClass
().
getName
());
request
.
setMethodName
(
method
.
getName
());
request
.
setMethodName
(
method
.
getName
());
request
.
setParameterTypes
(
method
.
getParameterTypes
());
request
.
setParameterTypes
(
method
.
getParameterTypes
());
...
...
xxl-job-core/src/main/java/com/xxl/job/core/rpc/netcom/NetComServerFactory.java
浏览文件 @
1bc5cc76
...
@@ -30,14 +30,18 @@ public class NetComServerFactory {
...
@@ -30,14 +30,18 @@ public class NetComServerFactory {
server
.
destroy
();
server
.
destroy
();
}
}
// ---------------------- server in
it
----------------------
// ---------------------- server in
stance
----------------------
/**
/**
* init local rpc service map
* init local rpc service map
*/
*/
private
static
Map
<
String
,
Object
>
serviceMap
=
new
HashMap
<
String
,
Object
>();
private
static
Map
<
String
,
Object
>
serviceMap
=
new
HashMap
<
String
,
Object
>();
private
static
String
accessToken
;
public
static
void
putService
(
Class
<?>
iface
,
Object
serviceBean
){
public
static
void
putService
(
Class
<?>
iface
,
Object
serviceBean
){
serviceMap
.
put
(
iface
.
getName
(),
serviceBean
);
serviceMap
.
put
(
iface
.
getName
(),
serviceBean
);
}
}
public
static
void
setAccessToken
(
String
accessToken
)
{
NetComServerFactory
.
accessToken
=
accessToken
;
}
public
static
RpcResponse
invokeService
(
RpcRequest
request
,
Object
serviceBean
)
{
public
static
RpcResponse
invokeService
(
RpcRequest
request
,
Object
serviceBean
)
{
if
(
serviceBean
==
null
)
{
if
(
serviceBean
==
null
)
{
serviceBean
=
serviceMap
.
get
(
request
.
getClassName
());
serviceBean
=
serviceMap
.
get
(
request
.
getClassName
());
...
@@ -49,7 +53,11 @@ public class NetComServerFactory {
...
@@ -49,7 +53,11 @@ public class NetComServerFactory {
RpcResponse
response
=
new
RpcResponse
();
RpcResponse
response
=
new
RpcResponse
();
if
(
System
.
currentTimeMillis
()
-
request
.
getCreateMillisTime
()
>
180000
)
{
if
(
System
.
currentTimeMillis
()
-
request
.
getCreateMillisTime
()
>
180000
)
{
response
.
setResult
(
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"the timestamp difference between admin and executor exceeds the limit."
));
response
.
setResult
(
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"The timestamp difference between admin and executor exceeds the limit."
));
return
response
;
}
if
(
accessToken
!=
null
&&
accessToken
.
trim
().
length
()>
0
&&
!
accessToken
.
trim
().
equals
(
request
.
getAccessToken
()))
{
response
.
setResult
(
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
"The access token["
+
request
.
getAccessToken
()
+
"] is wrong."
));
return
response
;
return
response
;
}
}
...
...
xxl-job-executor-example/src/main/resources/applicationcontext-xxl-job.xml
浏览文件 @
1bc5cc76
...
@@ -33,6 +33,8 @@
...
@@ -33,6 +33,8 @@
<property
name=
"adminAddresses"
value=
"${xxl.job.admin.addresses}"
/>
<property
name=
"adminAddresses"
value=
"${xxl.job.admin.addresses}"
/>
<!-- 执行器日志路径[必填] -->
<!-- 执行器日志路径[必填] -->
<property
name=
"logPath"
value=
"${xxl.job.executor.logpath}"
/>
<property
name=
"logPath"
value=
"${xxl.job.executor.logpath}"
/>
<!-- 访问令牌,非空则进行匹配校验[选填] -->
<property
name=
"accessToken"
value=
"${xxl.job.accessToken}"
/>
</bean>
</bean>
...
...
xxl-job-executor-example/src/main/resources/xxl-job-executor.properties
浏览文件 @
1bc5cc76
...
@@ -7,4 +7,7 @@ xxl.job.executor.ip=
...
@@ -7,4 +7,7 @@ xxl.job.executor.ip=
xxl.job.executor.port
=
9999
xxl.job.executor.port
=
9999
### xxl-job log path
### xxl-job log path
xxl.job.executor.logpath
=
/data/applogs/xxl-job/jobhandler/
xxl.job.executor.logpath
=
/data/applogs/xxl-job/jobhandler/
\ No newline at end of file
### xxl-job, access token
xxl.job.accessToken
=
\ No newline at end of file
xxl-job-executor-example/src/test/java/com/xxl/executor/test/DemoJobHandlerTest.java
浏览文件 @
1bc5cc76
...
@@ -33,7 +33,8 @@ public class DemoJobHandlerTest {
...
@@ -33,7 +33,8 @@ public class DemoJobHandlerTest {
triggerParam
.
setLogDateTim
(
System
.
currentTimeMillis
());
triggerParam
.
setLogDateTim
(
System
.
currentTimeMillis
());
// do remote trigger
// do remote trigger
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
"127.0.0.1:9999"
).
getObject
();
String
accessToken
=
null
;
ExecutorBiz
executorBiz
=
(
ExecutorBiz
)
new
NetComClientProxy
(
ExecutorBiz
.
class
,
"127.0.0.1:9999"
,
null
).
getObject
();
ReturnT
<
String
>
runResult
=
executorBiz
.
run
(
triggerParam
);
ReturnT
<
String
>
runResult
=
executorBiz
.
run
(
triggerParam
);
}
}
...
...
xxl-job-executor-springboot-example/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java
浏览文件 @
1bc5cc76
...
@@ -34,6 +34,8 @@ public class XxlJobConfig {
...
@@ -34,6 +34,8 @@ public class XxlJobConfig {
@Value
(
"${xxl.job.executor.logpath}"
)
@Value
(
"${xxl.job.executor.logpath}"
)
private
String
logpath
;
private
String
logpath
;
@Value
(
"${xxl.job.accessToken}"
)
private
String
accessToken
;
@Bean
(
initMethod
=
"start"
,
destroyMethod
=
"destroy"
)
@Bean
(
initMethod
=
"start"
,
destroyMethod
=
"destroy"
)
public
XxlJobExecutor
xxlJobExecutor
()
{
public
XxlJobExecutor
xxlJobExecutor
()
{
...
@@ -44,6 +46,7 @@ public class XxlJobConfig {
...
@@ -44,6 +46,7 @@ public class XxlJobConfig {
xxlJobExecutor
.
setAppName
(
appname
);
xxlJobExecutor
.
setAppName
(
appname
);
xxlJobExecutor
.
setAdminAddresses
(
addresses
);
xxlJobExecutor
.
setAdminAddresses
(
addresses
);
xxlJobExecutor
.
setLogPath
(
logpath
);
xxlJobExecutor
.
setLogPath
(
logpath
);
xxlJobExecutor
.
setAccessToken
(
accessToken
);
return
xxlJobExecutor
;
return
xxlJobExecutor
;
}
}
...
...
xxl-job-executor-springboot-example/src/main/resources/application.properties
浏览文件 @
1bc5cc76
...
@@ -15,3 +15,6 @@ xxl.job.executor.port=9998
...
@@ -15,3 +15,6 @@ xxl.job.executor.port=9998
### xxl-job log path
### xxl-job log path
xxl.job.executor.logpath
=
/data/applogs/xxl-job/jobhandler/
xxl.job.executor.logpath
=
/data/applogs/xxl-job/jobhandler/
### xxl-job, access token
xxl.job.accessToken
=
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论