Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
25ed0cfb
Unverified
提交
25ed0cfb
authored
12月 25, 2017
作者:
许雪里
提交者:
GitHub
12月 25, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #153 from denghuafeng/master
增加nutz执行器
上级
fa1ed59b
e4c93174
显示空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
328 行增加
和
0 行删除
+328
-0
pom.xml
pom.xml
+1
-0
pom.xml
xxl-job-executor-samples/pom.xml
+2
-0
pom.xml
...job-executor-samples/xxl-job-executor-sample-nutz/pom.xml
+36
-0
MainModule.java
...ain/java/com/xuxueli/executor/sample/nutz/MainModule.java
+26
-0
MainSetup.java
...main/java/com/xuxueli/executor/sample/nutz/MainSetup.java
+55
-0
DemoJobHandler.java
...xueli/executor/sample/nutz/jobhandler/DemoJobHandler.java
+36
-0
ShardingJobHandler.java
...i/executor/sample/nutz/jobhandler/ShardingJobHandler.java
+38
-0
IndexModule.java
.../com/xuxueli/executor/sample/nutz/module/IndexModule.java
+18
-0
xxl-job-executor.properties
...utz/src/main/resources/custom/xxl-job-executor.properties
+14
-0
dao.js
...xl-job-executor-sample-nutz/src/main/resources/ioc/dao.js
+39
-0
log4j.xml
...xxl-job-executor-sample-nutz/src/main/resources/log4j.xml
+28
-0
index.jsp
...ob-executor-sample-nutz/src/main/webapp/WEB-INF/index.jsp
+13
-0
web.xml
...-job-executor-sample-nutz/src/main/webapp/WEB-INF/web.xml
+22
-0
index
...amples/xxl-job-executor-sample-nutz/src/main/webapp/index
+0
-0
没有找到文件。
pom.xml
浏览文件 @
25ed0cfb
...
@@ -31,6 +31,7 @@
...
@@ -31,6 +31,7 @@
<hessian.version>
4.0.51
</hessian.version>
<hessian.version>
4.0.51
</hessian.version>
<httpclient.version>
4.5.4
</httpclient.version>
<httpclient.version>
4.5.4
</httpclient.version>
<commons-exec.version>
1.3
</commons-exec.version>
<commons-exec.version>
1.3
</commons-exec.version>
<commons-collections4.version>
4.1
</commons-collections4.version>
<commons-collections4.version>
4.1
</commons-collections4.version>
<commons-lang3.version>
3.7
</commons-lang3.version>
<commons-lang3.version>
3.7
</commons-lang3.version>
...
...
xxl-job-executor-samples/pom.xml
浏览文件 @
25ed0cfb
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
<module>
xxl-job-executor-sample-spring
</module>
<module>
xxl-job-executor-sample-spring
</module>
<module>
xxl-job-executor-sample-springboot
</module>
<module>
xxl-job-executor-sample-springboot
</module>
<module>
xxl-job-executor-sample-jfinal
</module>
<module>
xxl-job-executor-sample-jfinal
</module>
<module>
xxl-job-executor-sample-nutz
</module>
</modules>
</modules>
</project>
</project>
\ No newline at end of file
xxl-job-executor-samples/xxl-job-executor-sample-nutz/pom.xml
0 → 100644
浏览文件 @
25ed0cfb
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
xxl-job-executor-samples
</artifactId>
<groupId>
com.xuxueli
</groupId>
<version>
1.8.2-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
xxl-job-executor-sample-nutz
</artifactId>
<packaging>
war
</packaging>
<dependencies>
<dependency>
<groupId>
org.nutz
</groupId>
<artifactId>
nutz
</artifactId>
<version>
1.r.62
</version>
</dependency>
<!-- xxl-job -->
<dependency>
<groupId>
com.xuxueli
</groupId>
<artifactId>
xxl-job-core
</artifactId>
<version>
${project.parent.version}
</version>
</dependency>
<dependency>
<groupId>
org.slf4j
</groupId>
<artifactId>
slf4j-log4j12
</artifactId>
<version>
${slf4j-api.version}
</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/java/com/xuxueli/executor/sample/nutz/MainModule.java
0 → 100644
浏览文件 @
25ed0cfb
package
com
.
xuxueli
.
executor
.
sample
.
nutz
;
import
org.nutz.mvc.annotation.Encoding
;
import
org.nutz.mvc.annotation.Fail
;
import
org.nutz.mvc.annotation.IocBy
;
import
org.nutz.mvc.annotation.Localization
;
import
org.nutz.mvc.annotation.Modules
;
import
org.nutz.mvc.annotation.Ok
;
import
org.nutz.mvc.annotation.SetupBy
;
import
org.nutz.mvc.ioc.provider.ComboIocProvider
;
/**
*
* @author 邓华锋
*
*/
@IocBy
(
type
=
ComboIocProvider
.
class
,
args
={
"*org.nutz.ioc.loader.json.JsonLoader"
,
"ioc/"
,
"*org.nutz.ioc.loader.annotation.AnnotationIocLoader"
,
"com.xuxueli"
})
@Encoding
(
input
=
"utf-8"
,
output
=
"utf-8"
)
@Modules
(
scanPackage
=
true
)
@Localization
(
"msg"
)
@Ok
(
"json"
)
@Fail
(
"json"
)
@SetupBy
(
MainSetup
.
class
)
public
class
MainModule
{
}
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/java/com/xuxueli/executor/sample/nutz/MainSetup.java
0 → 100644
浏览文件 @
25ed0cfb
package
com
.
xuxueli
.
executor
.
sample
.
nutz
;
import
org.nutz.ioc.IocException
;
import
org.nutz.ioc.impl.PropertiesProxy
;
import
org.nutz.log.Log
;
import
org.nutz.log.Logs
;
import
org.nutz.mvc.NutConfig
;
import
org.nutz.mvc.Setup
;
import
com.xxl.job.core.executor.XxlJobExecutor
;
import
com.xxl.job.core.handler.IJobHandler
;
/**
*
* @author 邓华锋
*
*/
public
class
MainSetup
implements
Setup
{
public
static
final
Log
log
=
Logs
.
get
();
XxlJobExecutor
xxlJobExecutor
=
null
;
@Override
public
void
init
(
NutConfig
cfg
)
{
// 通用注册IJobHandler
String
[]
names
=
cfg
.
getIoc
().
getNamesByType
(
IJobHandler
.
class
);
for
(
String
name
:
names
)
{
XxlJobExecutor
.
registJobHandler
(
name
,
cfg
.
getIoc
().
get
(
IJobHandler
.
class
,
name
));
}
// load executor prop
PropertiesProxy
xxlJobProp
=
cfg
.
getIoc
().
get
(
PropertiesProxy
.
class
,
"conf"
);
// init executor
xxlJobExecutor
=
new
XxlJobExecutor
();
xxlJobExecutor
.
setIp
(
xxlJobProp
.
get
(
"xxl.job.executor.ip"
));
xxlJobExecutor
.
setPort
(
xxlJobProp
.
getInt
(
"xxl.job.executor.port"
));
xxlJobExecutor
.
setAppName
(
xxlJobProp
.
get
(
"xxl.job.executor.appname"
));
xxlJobExecutor
.
setAdminAddresses
(
xxlJobProp
.
get
(
"xxl.job.admin.addresses"
));
xxlJobExecutor
.
setLogPath
(
xxlJobProp
.
get
(
"xxl.job.executor.logpath"
));
xxlJobExecutor
.
setAccessToken
(
xxlJobProp
.
get
(
"xxl.job.accessToken"
));
// start executor
try
{
xxlJobExecutor
.
start
();
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
}
@Override
public
void
destroy
(
NutConfig
cfg
)
{
if
(
xxlJobExecutor
!=
null
)
{
xxlJobExecutor
.
destroy
();
}
}
}
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/java/com/xuxueli/executor/sample/nutz/jobhandler/DemoJobHandler.java
0 → 100644
浏览文件 @
25ed0cfb
package
com
.
xuxueli
.
executor
.
sample
.
nutz
.
jobhandler
;
import
java.util.concurrent.TimeUnit
;
import
org.nutz.ioc.loader.annotation.IocBean
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.handler.IJobHandler
;
import
com.xxl.job.core.log.XxlJobLogger
;
/**
* 任务Handler的一个Demo(Bean模式)
*
* 开发步骤:
* 1、继承 “IJobHandler” ;
* 2、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
* 3、在 "JFinalCoreConfig" 中注册,执行Jobhandler名称;
*
* @author xuxueli 2015-12-19 19:43:36
*/
@IocBean
public
class
DemoJobHandler
extends
IJobHandler
{
@Override
public
ReturnT
<
String
>
execute
(
String
...
params
)
throws
Exception
{
XxlJobLogger
.
log
(
"XXL-JOB, Hello World."
);
for
(
int
i
=
0
;
i
<
5
;
i
++)
{
XxlJobLogger
.
log
(
"beat at:"
+
i
);
TimeUnit
.
SECONDS
.
sleep
(
2
);
}
return
ReturnT
.
SUCCESS
;
}
}
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/java/com/xuxueli/executor/sample/nutz/jobhandler/ShardingJobHandler.java
0 → 100644
浏览文件 @
25ed0cfb
package
com
.
xuxueli
.
executor
.
sample
.
nutz
.
jobhandler
;
import
org.nutz.ioc.loader.annotation.IocBean
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.handler.IJobHandler
;
import
com.xxl.job.core.log.XxlJobLogger
;
import
com.xxl.job.core.util.ShardingUtil
;
/**
* 分片广播任务
*
* @author xuxueli 2017-07-25 20:56:50
*/
@IocBean
public
class
ShardingJobHandler
extends
IJobHandler
{
@Override
public
ReturnT
<
String
>
execute
(
String
...
params
)
throws
Exception
{
// 分片参数
ShardingUtil
.
ShardingVO
shardingVO
=
ShardingUtil
.
getShardingVo
();
XxlJobLogger
.
log
(
"分片参数:当前分片序号 = {0}, 总分片数 = {1}"
,
shardingVO
.
getIndex
(),
shardingVO
.
getTotal
());
// 业务逻辑
for
(
int
i
=
0
;
i
<
shardingVO
.
getTotal
();
i
++)
{
if
(
i
==
shardingVO
.
getIndex
())
{
XxlJobLogger
.
log
(
"第 {0} 片, 命中分片开始处理"
,
i
);
}
else
{
XxlJobLogger
.
log
(
"第 {0} 片, 忽略"
,
i
);
}
}
return
ReturnT
.
SUCCESS
;
}
}
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/java/com/xuxueli/executor/sample/nutz/module/IndexModule.java
0 → 100644
浏览文件 @
25ed0cfb
package
com
.
xuxueli
.
executor
.
sample
.
nutz
.
module
;
import
org.nutz.ioc.loader.annotation.IocBean
;
import
org.nutz.mvc.annotation.At
;
import
org.nutz.mvc.annotation.Ok
;
/**
*
* @author 邓华锋
*
*/
@IocBean
public
class
IndexModule
{
@At
@Ok
(
"jsp:index"
)
public
void
index
()
{
}
}
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/resources/custom/xxl-job-executor.properties
0 → 100644
浏览文件 @
25ed0cfb
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses
=
http://127.0.0.1:8080/xxl-job-admin
### xxl-job executor address
xxl.job.executor.appname
=
xxl-job-executor-sample
xxl.job.executor.ip
=
xxl.job.executor.port
=
1024
### xxl-job log path
xxl.job.executor.logpath
=
/data/applogs/xxl-job/jobhandler/
### xxl-job, access token
xxl.job.accessToken
=
\ No newline at end of file
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/resources/ioc/dao.js
0 → 100644
浏览文件 @
25ed0cfb
var
ioc
=
{
conf
:
{
type
:
"org.nutz.ioc.impl.PropertiesProxy"
,
fields
:
{
paths
:
[
"custom/"
]
}
},
/**
* 配置单例job执行
*/
/*xxlJobExecutor : {
type : "com.xxl.job.core.executor.XxlJobExecutor",
events : {
create : "start",
depose : "destroy"
},
fields : {
ip : {
java : "$conf.get('xxl.job.executor.ip')"
},
port : {
java : "$conf.get('xxl.job.executor.port')"
},
appName : {
java : "$conf.get('xxl.job.executor.appname')"
},
adminAddresses : {
java : "$conf.get('xxl.job.admin.addresses')"
},
logPath : {
java : "$conf.get('xxl.job.executor.logpath')"
},
accessToken : {
java : "$conf.get('xxl.job.accessToken')"
}
}
}*/
};
\ No newline at end of file
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/resources/log4j.xml
0 → 100644
浏览文件 @
25ed0cfb
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">
<log4j:configuration
xmlns:log4j=
"http://jakarta.apache.org/log4j/"
threshold=
"null"
debug=
"null"
>
<appender
name=
"CONSOLE"
class=
"org.apache.log4j.ConsoleAppender"
>
<param
name=
"Target"
value=
"System.out"
/>
<layout
class=
"org.apache.log4j.PatternLayout"
>
<param
name=
"ConversionPattern"
value=
"%-d{yyyy-MM-dd HH:mm:ss} spider-executor [%c]-[%t]-[%M]-[%L]-[%p] %m%n"
/>
</layout>
</appender>
<appender
name=
"FILE"
class=
"org.apache.log4j.DailyRollingFileAppender"
>
<param
name=
"file"
value=
"/data/applogs/xxl-job/spider-executor.log"
/>
<param
name=
"append"
value=
"true"
/>
<param
name=
"encoding"
value=
"UTF-8"
/>
<layout
class=
"org.apache.log4j.PatternLayout"
>
<param
name=
"ConversionPattern"
value=
"%-d{yyyy-MM-dd HH:mm:ss} spider-executor [%c]-[%t]-[%M]-[%L]-[%p] %m%n"
/>
</layout>
</appender>
<root>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CONSOLE"
/>
<appender-ref
ref=
"FILE"
/>
</root>
</log4j:configuration>
\ No newline at end of file
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/webapp/WEB-INF/index.jsp
0 → 100644
浏览文件 @
25ed0cfb
<
%@
page
language=
"java"
contentType=
"text/html; charset=UTF-8"
pageEncoding=
"UTF-8"
%
>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
>
<title>
nutz 执行器启动成功
</title>
</head>
<body>
nutz 执行器启动成功!
</body>
</html>
\ No newline at end of file
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/webapp/WEB-INF/web.xml
0 → 100644
浏览文件 @
25ed0cfb
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns=
"http://java.sun.com/xml/ns/javaee"
xmlns:web=
"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation=
"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id=
"WebApp_ID"
version=
"2.5"
>
<display-name>
xxl-job-executor-sample-nutz
</display-name>
<filter>
<filter-name>
xxl-job-executor-sample-nutz
</filter-name>
<filter-class>
org.nutz.mvc.NutFilter
</filter-class>
<init-param>
<param-name>
modules
</param-name>
<param-value>
com.xuxueli.executor.sample.nutz.MainModule
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>
xxl-job-executor-sample-nutz
</filter-name>
<url-pattern>
/*
</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>
index
</welcome-file>
</welcome-file-list>
</web-app>
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/webapp/index
0 → 100644
浏览文件 @
25ed0cfb
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论