Bläddra i källkod

远程调度通讯,新增Jetty方式

xueli.xue 9 år sedan
förälder
incheckning
1df79bc940

+ 1 - 0
.gitignore Visa fil

@@ -1,2 +1,3 @@
1 1
 /.settings/
2 2
 /.project
3
+/xxl-job.iml

+ 1 - 2
xxl-job-admin/.gitignore Visa fil

@@ -1,6 +1,5 @@
1 1
 /target/
2 2
 /.settings/
3
-/target/
4 3
 /.classpath
5 4
 /.project
6
-/target/
5
+/xxl-job-admin.iml

+ 1 - 0
xxl-job-client-demo/.gitignore Visa fil

@@ -2,3 +2,4 @@
2 2
 /.classpath
3 3
 /.project
4 4
 /.settings/
5
+/xxl-job-client-demo.iml

+ 1 - 1
xxl-job-client/.gitignore Visa fil

@@ -2,4 +2,4 @@
2 2
 /.classpath
3 3
 /.project
4 4
 /.settings/
5
-/target/
5
+/xxl-job-client.iml

+ 55 - 0
xxl-job-client/src/main/java/com/xxl/job/client/netcom/jetty/XxlJobJettyServer.java Visa fil

@@ -0,0 +1,55 @@
1
+package com.xxl.job.client.netcom.jetty;
2
+
3
+import org.eclipse.jetty.server.Connector;
4
+import org.eclipse.jetty.server.Handler;
5
+import org.eclipse.jetty.server.Server;
6
+import org.eclipse.jetty.server.handler.HandlerCollection;
7
+import org.eclipse.jetty.server.nio.SelectChannelConnector;
8
+import org.eclipse.jetty.util.thread.ExecutorThreadPool;
9
+import org.slf4j.Logger;
10
+import org.slf4j.LoggerFactory;
11
+
12
+/**
13
+ * Created by xuxueli on 2016/3/2 21:14.
14
+ */
15
+public class XxlJobJettyServer {
16
+    private static final Logger logger = LoggerFactory.getLogger(XxlJobJettyServer.class);
17
+
18
+    private int port = 9999;
19
+    public void setPort(int port) {
20
+        this.port = port;
21
+    }
22
+
23
+    public void start() throws Exception {
24
+
25
+        new Thread(new Runnable() {
26
+            @Override
27
+            public void run() {
28
+                Server server = new Server();
29
+                server.setThreadPool(new ExecutorThreadPool(200, 200, 30000));	// 非阻塞
30
+
31
+                // connector
32
+                SelectChannelConnector connector = new SelectChannelConnector();
33
+                connector.setPort(port);
34
+                connector.setMaxIdleTime(30000);
35
+                server.setConnectors(new Connector[] { connector });
36
+
37
+                // handler
38
+                HandlerCollection handlerc =new HandlerCollection();
39
+                handlerc.setHandlers(new Handler[]{new XxlJobJettyServerHandler()});
40
+                server.setHandler(handlerc);
41
+
42
+                try {
43
+                    server.start();
44
+                    logger.info(">>>>>>>>>>>> xxl-job jetty server start success at port:{}.", port);
45
+                    server.join();  // block until server ready
46
+                    logger.info(">>>>>>>>>>>> xxl-job jetty server join success at port:{}.", port);
47
+                } catch (Exception e) {
48
+                    e.printStackTrace();
49
+                }
50
+            }
51
+        }).start();
52
+
53
+    }
54
+
55
+}

+ 43 - 0
xxl-job-client/src/main/java/com/xxl/job/client/netcom/jetty/XxlJobJettyServerHandler.java Visa fil

@@ -0,0 +1,43 @@
1
+package com.xxl.job.client.netcom.jetty;
2
+
3
+import com.xxl.job.client.handler.HandlerRepository;
4
+import org.eclipse.jetty.server.Request;
5
+import org.eclipse.jetty.server.handler.AbstractHandler;
6
+
7
+import javax.servlet.ServletException;
8
+import javax.servlet.http.HttpServletRequest;
9
+import javax.servlet.http.HttpServletResponse;
10
+import java.io.IOException;
11
+import java.util.HashMap;
12
+import java.util.Map;
13
+
14
+/**
15
+ * Created by xuxueli on 2016/3/2 21:23.
16
+ */
17
+public class XxlJobJettyServerHandler extends AbstractHandler {
18
+
19
+	@Override
20
+	public void handle(String s, Request baseRequest, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException, ServletException {
21
+
22
+		httpServletRequest.setCharacterEncoding("UTF-8");
23
+		httpServletResponse.setCharacterEncoding("UTF-8");
24
+
25
+		Map<String, String> _param = new HashMap<String, String>();
26
+		if (httpServletRequest.getParameterMap()!=null && httpServletRequest.getParameterMap().size()>0) {
27
+			for (Object paramKey : httpServletRequest.getParameterMap().keySet()) {
28
+				if (paramKey!=null) {
29
+					String paramKeyStr = paramKey.toString();
30
+					_param.put(paramKeyStr, httpServletRequest.getParameter(paramKeyStr));
31
+				}
32
+			}
33
+		}
34
+
35
+		String resp = HandlerRepository.pushHandleQueue(_param);
36
+
37
+		httpServletResponse.setContentType("text/html;charset=utf-8");
38
+		httpServletResponse.setStatus(HttpServletResponse.SC_OK);
39
+		baseRequest.setHandled(true);
40
+		httpServletResponse.getWriter().println(resp);
41
+	}
42
+
43
+}