Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
0f4c412f
提交
0f4c412f
authored
5月 17, 2016
作者:
xueli.xue
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
jobhandler加载方式更新
上级
7b402a3c
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
127 行增加
和
71 行删除
+127
-71
JobMonitorHelper.java
...c/main/java/com/xxl/job/core/thread/JobMonitorHelper.java
+1
-1
RemoteHttpJobBean.java
.../main/java/com/xxl/job/service/job/RemoteHttpJobBean.java
+1
-1
config.properties
xxl-job-admin/src/main/resources/config.properties
+1
-1
DemoJobHandler.java
...main/java/com/xxl/job/service/handler/DemoJobHandler.java
+3
-6
web.xml
xxl-job-client-demo/src/main/webapp/WEB-INF/web.xml
+1
-1
pom.xml
xxl-job-client/pom.xml
+8
-0
JobHander.java
...t/src/main/java/com/xxl/job/client/handler/JobHander.java
+18
-0
XxlJobJettyServer.java
...va/com/xxl/job/client/netcom/jetty/XxlJobJettyServer.java
+33
-1
XxlJobServlet.java
...java/com/xxl/job/client/netcom/servlet/XxlJobServlet.java
+61
-60
没有找到文件。
xxl-job-admin/src/main/java/com/xxl/job/core/thread/JobMonitorHelper.java
浏览文件 @
0f4c412f
...
@@ -24,7 +24,7 @@ import com.xxl.job.core.util.MailUtil;
...
@@ -24,7 +24,7 @@ import com.xxl.job.core.util.MailUtil;
public
class
JobMonitorHelper
{
public
class
JobMonitorHelper
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
JobMonitorHelper
.
class
);
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
JobMonitorHelper
.
class
);
p
ublic
static
JobMonitorHelper
helper
=
new
JobMonitorHelper
();
p
rivate
static
JobMonitorHelper
helper
=
new
JobMonitorHelper
();
private
ExecutorService
executor
=
Executors
.
newCachedThreadPool
();
private
ExecutorService
executor
=
Executors
.
newCachedThreadPool
();
private
LinkedBlockingQueue
<
Integer
>
queue
=
new
LinkedBlockingQueue
<
Integer
>(
0xfff8
);
private
LinkedBlockingQueue
<
Integer
>
queue
=
new
LinkedBlockingQueue
<
Integer
>(
0xfff8
);
private
ConcurrentHashMap
<
String
,
Integer
>
countMap
=
new
ConcurrentHashMap
<
String
,
Integer
>();
private
ConcurrentHashMap
<
String
,
Integer
>
countMap
=
new
ConcurrentHashMap
<
String
,
Integer
>();
...
...
xxl-job-admin/src/main/java/com/xxl/job/service/job/RemoteHttpJobBean.java
浏览文件 @
0f4c412f
...
@@ -62,7 +62,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
...
@@ -62,7 +62,7 @@ public class RemoteHttpJobBean extends QuartzJobBean {
params
.
put
(
HandlerRepository
.
HANDLER_NAME
,
jobDataMap
.
get
(
HandlerRepository
.
HANDLER_NAME
));
params
.
put
(
HandlerRepository
.
HANDLER_NAME
,
jobDataMap
.
get
(
HandlerRepository
.
HANDLER_NAME
));
params
.
put
(
HandlerRepository
.
HANDLER_PARAMS
,
jobDataMap
.
get
(
HandlerRepository
.
HANDLER_PARAMS
));
params
.
put
(
HandlerRepository
.
HANDLER_PARAMS
,
jobDataMap
.
get
(
HandlerRepository
.
HANDLER_PARAMS
));
// handler address, jetty
or servlet
// handler address, jetty
(servlet dead)
String
handler_address
=
jobDataMap
.
get
(
HandlerRepository
.
HANDLER_ADDRESS
);
String
handler_address
=
jobDataMap
.
get
(
HandlerRepository
.
HANDLER_ADDRESS
);
if
(!
handler_address
.
startsWith
(
"http"
)){
if
(!
handler_address
.
startsWith
(
"http"
)){
handler_address
=
"http://"
+
handler_address
+
"/"
;
handler_address
=
"http://"
+
handler_address
+
"/"
;
...
...
xxl-job-admin/src/main/resources/config.properties
浏览文件 @
0f4c412f
# for trigger log callback
# for trigger log callback
trigger_log_url
=
http://localhost
:8080
/joblog/save
trigger_log_url
=
http://localhost/joblog/save
# for email
# for email
mail.host
=
smtp.163.com
mail.host
=
smtp.163.com
...
...
xxl-job-client-demo/src/main/java/com/xxl/job/service/handler/DemoJobHandler.java
浏览文件 @
0f4c412f
...
@@ -6,25 +6,22 @@ import org.slf4j.Logger;
...
@@ -6,25 +6,22 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.xxl.job.client.handler.HandlerRepository
;
import
com.xxl.job.client.handler.IJobHandler
;
import
com.xxl.job.client.handler.IJobHandler
;
import
com.xxl.job.client.handler.JobHander
;
/**
/**
* demo job handler
* demo job handler
* @author xuxueli 2015-12-19 19:43:36
* @author xuxueli 2015-12-19 19:43:36
*/
*/
@JobHander
(
jobName
=
"demoJobHandler"
)
@Service
@Service
public
class
DemoJobHandler
extends
IJobHandler
{
public
class
DemoJobHandler
extends
IJobHandler
{
private
static
transient
Logger
logger
=
LoggerFactory
.
getLogger
(
DemoJobHandler
.
class
);
private
static
transient
Logger
logger
=
LoggerFactory
.
getLogger
(
DemoJobHandler
.
class
);
public
DemoJobHandler
()
{
HandlerRepository
.
regist
(
"demoJobHandler"
,
this
);
}
@Override
@Override
public
JobHandleStatus
handle
(
String
...
params
)
throws
Exception
{
public
JobHandleStatus
handle
(
String
...
params
)
throws
Exception
{
logger
.
info
(
" ... params:"
+
params
);
logger
.
info
(
" ... params:"
+
params
);
for
(
int
i
=
0
;
i
<
60
;
i
++)
{
for
(
int
i
=
0
;
i
<
5
;
i
++)
{
TimeUnit
.
SECONDS
.
sleep
(
1
);
TimeUnit
.
SECONDS
.
sleep
(
1
);
logger
.
info
(
"handler run:{}"
,
i
);
logger
.
info
(
"handler run:{}"
,
i
);
}
}
...
...
xxl-job-client-demo/src/main/webapp/WEB-INF/web.xml
浏览文件 @
0f4c412f
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</listener>
<!-- Servlet任务执行器,推荐使用Jetty任务执行器 -->
<!--
[@Deprecated]
Servlet任务执行器,推荐使用Jetty任务执行器 -->
<!--
<!--
<servlet>
<servlet>
<servlet-name>XxlJobServlet</servlet-name>
<servlet-name>XxlJobServlet</servlet-name>
...
...
xxl-job-client/pom.xml
浏览文件 @
0f4c412f
...
@@ -52,6 +52,14 @@
...
@@ -52,6 +52,14 @@
<artifactId>
httpclient
</artifactId>
<artifactId>
httpclient
</artifactId>
<version>
4.3.6
</version>
<version>
4.3.6
</version>
</dependency>
</dependency>
<!-- spring-context -->
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-context
</artifactId>
<version>
3.2.14.RELEASE
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
</dependencies>
...
...
xxl-job-client/src/main/java/com/xxl/job/client/handler/JobHander.java
0 → 100644
浏览文件 @
0f4c412f
package
com
.
xxl
.
job
.
client
.
handler
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* annotation for job handler
* @author 2016-5-17 21:06:49
*/
@Target
({
ElementType
.
TYPE
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
JobHander
{
String
jobName
();
}
xxl-job-client/src/main/java/com/xxl/job/client/netcom/jetty/XxlJobJettyServer.java
浏览文件 @
0f4c412f
package
com
.
xxl
.
job
.
client
.
netcom
.
jetty
;
package
com
.
xxl
.
job
.
client
.
netcom
.
jetty
;
import
java.util.Map
;
import
org.eclipse.jetty.server.Connector
;
import
org.eclipse.jetty.server.Connector
;
import
org.eclipse.jetty.server.Handler
;
import
org.eclipse.jetty.server.Handler
;
import
org.eclipse.jetty.server.Server
;
import
org.eclipse.jetty.server.Server
;
...
@@ -8,11 +10,18 @@ import org.eclipse.jetty.server.nio.SelectChannelConnector;
...
@@ -8,11 +10,18 @@ import org.eclipse.jetty.server.nio.SelectChannelConnector;
import
org.eclipse.jetty.util.thread.ExecutorThreadPool
;
import
org.eclipse.jetty.util.thread.ExecutorThreadPool
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeansException
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.ApplicationContextAware
;
import
com.xxl.job.client.handler.HandlerRepository
;
import
com.xxl.job.client.handler.IJobHandler
;
import
com.xxl.job.client.handler.JobHander
;
/**
/**
* Created by xuxueli on 2016/3/2 21:14.
* Created by xuxueli on 2016/3/2 21:14.
*/
*/
public
class
XxlJobJettyServer
{
public
class
XxlJobJettyServer
implements
ApplicationContextAware
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
XxlJobJettyServer
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
XxlJobJettyServer
.
class
);
private
int
port
=
9999
;
private
int
port
=
9999
;
...
@@ -52,4 +61,27 @@ public class XxlJobJettyServer {
...
@@ -52,4 +61,27 @@ public class XxlJobJettyServer {
}
}
public
static
ApplicationContext
applicationContext
;
@Override
public
void
setApplicationContext
(
ApplicationContext
applicationContext
)
throws
BeansException
{
XxlJobJettyServer
.
applicationContext
=
applicationContext
;
initJobHandler
();
}
/**
* init job handler service
*/
public
void
initJobHandler
(){
Map
<
String
,
Object
>
serviceBeanMap
=
XxlJobJettyServer
.
applicationContext
.
getBeansWithAnnotation
(
JobHander
.
class
);
if
(
serviceBeanMap
!=
null
&&
serviceBeanMap
.
size
()>
0
)
{
for
(
Object
serviceBean
:
serviceBeanMap
.
values
())
{
String
jobName
=
serviceBean
.
getClass
().
getAnnotation
(
JobHander
.
class
).
jobName
();
if
(
jobName
!=
null
&&
jobName
.
trim
().
length
()>
0
&&
serviceBean
instanceof
IJobHandler
)
{
IJobHandler
handler
=
(
IJobHandler
)
serviceBean
;
HandlerRepository
.
regist
(
jobName
,
handler
);
}
}
}
}
}
}
xxl-job-client/src/main/java/com/xxl/job/client/netcom/servlet/XxlJobServlet.java
浏览文件 @
0f4c412f
package
com
.
xxl
.
job
.
client
.
netcom
.
servlet
;
//package com.xxl.job.client.netcom.servlet;
//
//
import
java.io.IOException
;
//import java.io.IOException;
import
java.util.HashMap
;
//import java.util.HashMap;
import
java.util.Map
;
//import java.util.Map;
//
import
javax.servlet.ServletException
;
//import javax.servlet.ServletException;
import
javax.servlet.http.HttpServlet
;
//import javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest
;
//import javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse
;
//import javax.servlet.http.HttpServletResponse;
//
import
com.xxl.job.client.handler.HandlerRepository
;
//import com.xxl.job.client.handler.HandlerRepository;
//
//
/**
///**
* remote job client on http
// * remote job client on http
* @author xuxueli 2015-12-19 18:36:47
// * @author xuxueli 2015-12-19 18:36:47
*/
// */
public
class
XxlJobServlet
extends
HttpServlet
{
//@Deprecated
private
static
final
long
serialVersionUID
=
1L
;
//public class XxlJobServlet extends HttpServlet {
// private static final long serialVersionUID = 1L;
/**
//
* Default constructor.
// /**
*/
// * Default constructor.
public
XxlJobServlet
()
{
// */
// TODO Auto-generated constructor stub
// public XxlJobServlet() {
}
// // TODO Auto-generated constructor stub
// }
/**
//
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
// /**
*/
// * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
protected
void
doGet
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
ServletException
,
IOException
{
// */
request
.
setCharacterEncoding
(
"UTF-8"
);
// protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response
.
setCharacterEncoding
(
"UTF-8"
);
// request.setCharacterEncoding("UTF-8");
// response.setCharacterEncoding("UTF-8");
Map
<
String
,
String
>
_param
=
new
HashMap
<
String
,
String
>();
//
if
(
request
.
getParameterMap
()!=
null
&&
request
.
getParameterMap
().
size
()>
0
)
{
// Map<String, String> _param = new HashMap<String, String>();
for
(
Object
paramKey
:
request
.
getParameterMap
().
keySet
())
{
// if (request.getParameterMap()!=null && request.getParameterMap().size()>0) {
if
(
paramKey
!=
null
)
{
// for (Object paramKey : request.getParameterMap().keySet()) {
String
paramKeyStr
=
paramKey
.
toString
();
// if (paramKey!=null) {
_param
.
put
(
paramKeyStr
,
request
.
getParameter
(
paramKeyStr
));
// String paramKeyStr = paramKey.toString();
}
// _param.put(paramKeyStr, request.getParameter(paramKeyStr));
}
// }
}
// }
// }
String
resp
=
HandlerRepository
.
service
(
_param
);
//
response
.
getWriter
().
append
(
resp
);
// String resp = HandlerRepository.service(_param);
return
;
// response.getWriter().append(resp);
}
// return;
// }
/**
//
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
// /**
*/
// * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
protected
void
doPost
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
ServletException
,
IOException
{
// */
// TODO Auto-generated method stub
// protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet
(
request
,
response
);
// // TODO Auto-generated method stub
}
// doGet(request, response);
// }
}
//
//}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论