提交 1df79bc9 编写于 作者: X xueli.xue

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

上级 1b2fb261
/.settings/
/.project
/xxl-job.iml
/target/
/.settings/
/target/
/.classpath
/.project
/target/
/xxl-job-admin.iml
\ No newline at end of file
......@@ -2,3 +2,4 @@
/.classpath
/.project
/.settings/
/xxl-job-client-demo.iml
......@@ -2,4 +2,4 @@
/.classpath
/.project
/.settings/
/target/
/xxl-job-client.iml
package com.xxl.job.client.netcom.jetty;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.util.thread.ExecutorThreadPool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created by xuxueli on 2016/3/2 21:14.
*/
public class XxlJobJettyServer {
private static final Logger logger = LoggerFactory.getLogger(XxlJobJettyServer.class);
private int port = 9999;
public void setPort(int port) {
this.port = port;
}
public void start() throws Exception {
new Thread(new Runnable() {
@Override
public void run() {
Server server = new Server();
server.setThreadPool(new ExecutorThreadPool(200, 200, 30000)); // 非阻塞
// connector
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(port);
connector.setMaxIdleTime(30000);
server.setConnectors(new Connector[] { connector });
// handler
HandlerCollection handlerc =new HandlerCollection();
handlerc.setHandlers(new Handler[]{new XxlJobJettyServerHandler()});
server.setHandler(handlerc);
try {
server.start();
logger.info(">>>>>>>>>>>> xxl-job jetty server start success at port:{}.", port);
server.join(); // block until server ready
logger.info(">>>>>>>>>>>> xxl-job jetty server join success at port:{}.", port);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
package com.xxl.job.client.netcom.jetty;
import com.xxl.job.client.handler.HandlerRepository;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
/**
* Created by xuxueli on 2016/3/2 21:23.
*/
public class XxlJobJettyServerHandler extends AbstractHandler {
@Override
public void handle(String s, Request baseRequest, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException, ServletException {
httpServletRequest.setCharacterEncoding("UTF-8");
httpServletResponse.setCharacterEncoding("UTF-8");
Map<String, String> _param = new HashMap<String, String>();
if (httpServletRequest.getParameterMap()!=null && httpServletRequest.getParameterMap().size()>0) {
for (Object paramKey : httpServletRequest.getParameterMap().keySet()) {
if (paramKey!=null) {
String paramKeyStr = paramKey.toString();
_param.put(paramKeyStr, httpServletRequest.getParameter(paramKeyStr));
}
}
}
String resp = HandlerRepository.pushHandleQueue(_param);
httpServletResponse.setContentType("text/html;charset=utf-8");
httpServletResponse.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
httpServletResponse.getWriter().println(resp);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册