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
25ed0cfb
authored
Dec 25, 2017
by
许雪里
Committed by
GitHub
Dec 25, 2017
Browse files
Options
_('Browse Files')
Download
Plain Diff
Merge pull request #153 from denghuafeng/master
增加nutz执行器
parents
fa1ed59b
e4c93174
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
328 additions
and
0 deletions
pom.xml
xxl-job-executor-samples/pom.xml
xxl-job-executor-samples/xxl-job-executor-sample-nutz/pom.xml
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/java/com/xuxueli/executor/sample/nutz/MainModule.java
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/java/com/xuxueli/executor/sample/nutz/MainSetup.java
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/java/com/xuxueli/executor/sample/nutz/jobhandler/DemoJobHandler.java
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/java/com/xuxueli/executor/sample/nutz/jobhandler/ShardingJobHandler.java
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/java/com/xuxueli/executor/sample/nutz/module/IndexModule.java
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/resources/custom/xxl-job-executor.properties
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/resources/ioc/dao.js
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/resources/log4j.xml
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/webapp/WEB-INF/index.jsp
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/webapp/WEB-INF/web.xml
xxl-job-executor-samples/xxl-job-executor-sample-nutz/src/main/webapp/index
pom.xml
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
25ed0cfb
File mode changed
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