Browse Source

revert code (#7906)

* update smart-servlet to 0.1.3-SNAPSHOT

* update aio-enhance to 1.0.3-SNAPSHOT

* smart-servlet bugfix

* bugfix

* update smart-socket to 1.5.6-SNAPSHOT

* remove file

* update aio-enhance to 1.0.4-SNAPSHOT

* 优化代码

* 优化代码

* update smart-socket to 1.5.6

* config threadNum

* update smart-socket to 1.5.7-SNAPSHOT

* 优化代码

* update smart-socket to 1.5.10-SNAPSHOT

* 优化代码

* 优化代码

* 优化代码

* 异常aio-enhance

* 优化代码

* 优化代码

* 优化代码

* remove aio-pro

* remove headerLimiter

* update hikaricp version

* replace json util

* 更新线程模型

* upgrade smart-servlet to 0.1.9-SNAPSHOT

* config thread num

* config thread num

* revert code

* revert code
三刀 2 years ago
parent
commit
24fa762428

+ 10 - 22
frameworks/Java/smart-socket/src/main/java/org/smartboot/http/Bootstrap.java

@@ -19,19 +19,11 @@ import org.smartboot.http.server.handler.HttpRouteHandler;
 
 
 import javax.sql.DataSource;
 import javax.sql.DataSource;
 import java.io.IOException;
 import java.io.IOException;
-import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
 
 
 public class Bootstrap {
 public class Bootstrap {
     static byte[] body = "Hello, World!".getBytes();
     static byte[] body = "Hello, World!".getBytes();
 
 
     public static void main(String[] args) {
     public static void main(String[] args) {
-        ExecutorService executorService = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), Runtime.getRuntime().availableProcessors(),
-                0L, TimeUnit.MILLISECONDS,
-                new ArrayBlockingQueue<>(128), new ThreadPoolExecutor.CallerRunsPolicy());
         HttpRouteHandler routeHandle = new HttpRouteHandler();
         HttpRouteHandler routeHandle = new HttpRouteHandler();
         routeHandle
         routeHandle
                 .route("/plaintext", new HttpServerHandler() {
                 .route("/plaintext", new HttpServerHandler() {
@@ -45,19 +37,15 @@ public class Bootstrap {
                     }
                     }
                 })
                 })
                 .route("/json", new HttpServerHandler() {
                 .route("/json", new HttpServerHandler() {
+
                     @Override
                     @Override
-                    public void handle(HttpRequest request, HttpResponse response, CompletableFuture<Object> completableFuture) throws IOException {
-                        executorService.execute(() -> {
-                            try {
-                                response.setContentType("application/json");
-                                JsonUtil.writeJsonBytes(response, new Message("Hello, World!"));
-                            } finally {
-                                completableFuture.complete(null);
-                            }
-                        });
+                    public void handle(HttpRequest request, HttpResponse response) throws IOException {
+
+                        response.setContentType("application/json");
+                        JsonUtil.writeJsonBytes(response, new Message("Hello, World!"));
                     }
                     }
                 });
                 });
-        initDB(routeHandle,executorService);
+        initDB(routeHandle);
         int cpuNum = Runtime.getRuntime().availableProcessors();
         int cpuNum = Runtime.getRuntime().availableProcessors();
         // 定义服务器接受的消息类型以及各类消息对应的处理器
         // 定义服务器接受的消息类型以及各类消息对应的处理器
         HttpBootstrap bootstrap = new HttpBootstrap();
         HttpBootstrap bootstrap = new HttpBootstrap();
@@ -70,7 +58,7 @@ public class Bootstrap {
         bootstrap.httpHandler(routeHandle).setPort(8080).start();
         bootstrap.httpHandler(routeHandle).setPort(8080).start();
     }
     }
 
 
-    private static void initDB(HttpRouteHandler routeHandle,ExecutorService executorService) {
+    private static void initDB(HttpRouteHandler routeHandle) {
         try {
         try {
             Class.forName("org.postgresql.Driver");
             Class.forName("org.postgresql.Driver");
         } catch (ClassNotFoundException e) {
         } catch (ClassNotFoundException e) {
@@ -85,9 +73,9 @@ public class Bootstrap {
         config.addDataSourceProperty("prepStmtCacheSize", "250");
         config.addDataSourceProperty("prepStmtCacheSize", "250");
         config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
         config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
         DataSource dataSource = new HikariDataSource(config);
         DataSource dataSource = new HikariDataSource(config);
-        routeHandle.route("/db", new SingleQueryHandler(dataSource,executorService))
-                .route("/queries", new MultipleQueriesHandler(dataSource,executorService))
-                .route("/updates", new UpdateHandler(dataSource,executorService));
+        routeHandle.route("/db", new SingleQueryHandler(dataSource))
+                .route("/queries", new MultipleQueriesHandler(dataSource))
+                .route("/updates", new UpdateHandler(dataSource));
 //                .route("/fortunes", new FortunesHandler(dataSource));
 //                .route("/fortunes", new FortunesHandler(dataSource));
     }
     }
 }
 }

+ 22 - 32
frameworks/Java/smart-socket/src/main/java/org/smartboot/http/MultipleQueriesHandler.java

@@ -11,8 +11,6 @@ import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.SQLException;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.ThreadLocalRandom;
 
 
 /**
 /**
@@ -21,42 +19,34 @@ import java.util.concurrent.ThreadLocalRandom;
  */
  */
 public class MultipleQueriesHandler extends HttpServerHandler {
 public class MultipleQueriesHandler extends HttpServerHandler {
     private DataSource dataSource;
     private DataSource dataSource;
-    private ExecutorService executorService;
 
 
-    public MultipleQueriesHandler(DataSource dataSource, ExecutorService executorService) {
+    public MultipleQueriesHandler(DataSource dataSource) {
         this.dataSource = dataSource;
         this.dataSource = dataSource;
-        this.executorService = executorService;
     }
     }
 
 
     @Override
     @Override
-    public void handle(HttpRequest request, HttpResponse response, CompletableFuture<Object> completableFuture) throws IOException {
-        executorService.execute(() -> {
-            try {
-                int queries = Math.min(Math.max(NumberUtils.toInt(request.getParameter("queries"), 1), 1), 500);
-                World[] worlds = new World[queries];
-                try (Connection connection = dataSource.getConnection();
-                     PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM World WHERE id=?");) {
-
-                    for (int i = 0; i < queries; i++) {
-                        preparedStatement.setInt(1, getRandomNumber());
-                        ResultSet resultSet = preparedStatement.executeQuery();
-                        resultSet.next();
-                        World world = new World();
-                        world.setId(resultSet.getInt(1));
-                        world.setRandomNumber(resultSet.getInt(2));
-                        worlds[i] = world;
-                        preparedStatement.clearParameters();
-                    }
-
-                } catch (SQLException throwables) {
-                    throwables.printStackTrace();
-                }
-                response.setContentType("application/json");
-                JsonUtil.writeJsonBytes(response, worlds);
-            } finally {
-                completableFuture.complete(null);
+    public void handle(HttpRequest httpRequest, HttpResponse response) throws IOException {
+        int queries = Math.min(Math.max(NumberUtils.toInt(httpRequest.getParameter("queries"), 1), 1), 500);
+        World[] worlds = new World[queries];
+        try (Connection connection = dataSource.getConnection();
+             PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM World WHERE id=?");) {
+
+            for (int i = 0; i < queries; i++) {
+                preparedStatement.setInt(1, getRandomNumber());
+                ResultSet resultSet = preparedStatement.executeQuery();
+                resultSet.next();
+                World world = new World();
+                world.setId(resultSet.getInt(1));
+                world.setRandomNumber(resultSet.getInt(2));
+                worlds[i] = world;
+                preparedStatement.clearParameters();
             }
             }
-        });
+
+        } catch (SQLException throwables) {
+            throwables.printStackTrace();
+        }
+        response.setContentType("application/json");
+        JsonUtil.writeJsonBytes(response, worlds);
     }
     }
 
 
     protected int getRandomNumber() {
     protected int getRandomNumber() {

+ 15 - 26
frameworks/Java/smart-socket/src/main/java/org/smartboot/http/SingleQueryHandler.java

@@ -10,8 +10,6 @@ import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.SQLException;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.ThreadLocalRandom;
 
 
 /**
 /**
@@ -21,34 +19,25 @@ import java.util.concurrent.ThreadLocalRandom;
 public class SingleQueryHandler extends HttpServerHandler {
 public class SingleQueryHandler extends HttpServerHandler {
     private DataSource dataSource;
     private DataSource dataSource;
 
 
-    private ExecutorService executorService;
-
-    public SingleQueryHandler(DataSource dataSource, ExecutorService executorService) {
+    public SingleQueryHandler(DataSource dataSource) {
         this.dataSource = dataSource;
         this.dataSource = dataSource;
-        this.executorService = executorService;
     }
     }
 
 
     @Override
     @Override
-    public void handle(HttpRequest request, HttpResponse response, CompletableFuture<Object> completableFuture) throws IOException {
-        executorService.execute(() -> {
-            try {
-                World world = new World();
-                try (Connection connection = dataSource.getConnection();
-                     PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM World WHERE id=?");) {
-                    preparedStatement.setInt(1, getRandomNumber());
-                    ResultSet resultSet = preparedStatement.executeQuery();
-                    resultSet.next();
-                    world.setId(resultSet.getInt(1));
-                    world.setRandomNumber(resultSet.getInt(2));
-                } catch (SQLException throwables) {
-                    throwables.printStackTrace();
-                }
-                response.setContentType("application/json");
-                JsonUtil.writeJsonBytes(response, world);
-            } finally {
-                completableFuture.complete(null);
-            }
-        });
+    public void handle(HttpRequest httpRequest, HttpResponse response) throws IOException {
+        World world = new World();
+        try (Connection connection = dataSource.getConnection();
+             PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM World WHERE id=?");) {
+            preparedStatement.setInt(1, getRandomNumber());
+            ResultSet resultSet = preparedStatement.executeQuery();
+            resultSet.next();
+            world.setId(resultSet.getInt(1));
+            world.setRandomNumber(resultSet.getInt(2));
+        } catch (SQLException throwables) {
+            throwables.printStackTrace();
+        }
+        response.setContentType("application/json");
+        JsonUtil.writeJsonBytes(response, world);
     }
     }
 
 
     protected int getRandomNumber() {
     protected int getRandomNumber() {

+ 34 - 44
frameworks/Java/smart-socket/src/main/java/org/smartboot/http/UpdateHandler.java

@@ -12,8 +12,6 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.SQLException;
 import java.util.StringJoiner;
 import java.util.StringJoiner;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.ThreadLocalRandom;
 
 
 /**
 /**
@@ -22,57 +20,49 @@ import java.util.concurrent.ThreadLocalRandom;
  */
  */
 public class UpdateHandler extends HttpServerHandler {
 public class UpdateHandler extends HttpServerHandler {
     private DataSource dataSource;
     private DataSource dataSource;
-    private ExecutorService executorService;
 
 
-    public UpdateHandler(DataSource dataSource, ExecutorService executorService) {
+    public UpdateHandler(DataSource dataSource) {
         this.dataSource = dataSource;
         this.dataSource = dataSource;
-        this.executorService = executorService;
     }
     }
 
 
     @Override
     @Override
-    public void handle(HttpRequest httpRequest, HttpResponse response, CompletableFuture<Object> completableFuture) throws IOException {
-        executorService.execute(() -> {
-            try {
-                int queries = Math.min(Math.max(NumberUtils.toInt(httpRequest.getParameter("queries"), 1), 1), 500);
-                World[] worlds = new World[queries];
-                StringJoiner updateSql = new StringJoiner(
-                        ", ",
-                        "UPDATE world SET randomnumber = temp.randomnumber FROM (VALUES ",
-                        " ORDER BY 1) AS temp(id, randomnumber) WHERE temp.id = world.id");
-                try (Connection connection = dataSource.getConnection()) {
+    public void handle(HttpRequest httpRequest, HttpResponse response) throws IOException {
+        int queries = Math.min(Math.max(NumberUtils.toInt(httpRequest.getParameter("queries"), 1), 1), 500);
+        World[] worlds = new World[queries];
+        StringJoiner updateSql = new StringJoiner(
+                ", ",
+                "UPDATE world SET randomnumber = temp.randomnumber FROM (VALUES ",
+                " ORDER BY 1) AS temp(id, randomnumber) WHERE temp.id = world.id");
+        try (Connection connection = dataSource.getConnection()) {
 
 
-                    try (PreparedStatement queryPreparedStatement = connection.prepareStatement("SELECT * FROM World WHERE id=?");) {
-                        for (int i = 0; i < queries; i++) {
-                            queryPreparedStatement.setInt(1, getRandomNumber());
-                            ResultSet resultSet = queryPreparedStatement.executeQuery();
-                            resultSet.next();
-                            World world = new World();
-                            world.setId(resultSet.getInt(1));
-                            world.setRandomNumber(getRandomNumber());
-                            worlds[i] = world;
-                            queryPreparedStatement.clearParameters();
-                            updateSql.add("(?, ?)");
-                        }
-                    }
-
-                    try (PreparedStatement preparedStatement = connection.prepareStatement(updateSql.toString());) {
-                        int i = 0;
-                        for (World world : worlds) {
-                            preparedStatement.setInt(++i, world.getId());
-                            preparedStatement.setInt(++i, world.getRandomNumber());
-                        }
-                        preparedStatement.executeUpdate();
-                    }
+            try (PreparedStatement queryPreparedStatement = connection.prepareStatement("SELECT * FROM World WHERE id=?");) {
+                for (int i = 0; i < queries; i++) {
+                    queryPreparedStatement.setInt(1, getRandomNumber());
+                    ResultSet resultSet = queryPreparedStatement.executeQuery();
+                    resultSet.next();
+                    World world = new World();
+                    world.setId(resultSet.getInt(1));
+                    world.setRandomNumber(getRandomNumber());
+                    worlds[i] = world;
+                    queryPreparedStatement.clearParameters();
+                    updateSql.add("(?, ?)");
+                }
+            }
 
 
-                } catch (SQLException throwables) {
-                    throwables.printStackTrace();
+            try (PreparedStatement preparedStatement = connection.prepareStatement(updateSql.toString());) {
+                int i = 0;
+                for (World world : worlds) {
+                    preparedStatement.setInt(++i, world.getId());
+                    preparedStatement.setInt(++i, world.getRandomNumber());
                 }
                 }
-                response.setContentType("application/json");
-                JsonUtil.writeJsonBytes(response, worlds);
-            } finally {
-                completableFuture.complete(null);
+                preparedStatement.executeUpdate();
             }
             }
-        });
+
+        } catch (SQLException throwables) {
+            throwables.printStackTrace();
+        }
+        response.setContentType("application/json");
+        JsonUtil.writeJsonBytes(response, worlds);
     }
     }
 
 
     protected int getRandomNumber() {
     protected int getRandomNumber() {