瀏覽代碼

update test

Signed-off-by: AE86 <836391306@qq.com>
AE86 1 年之前
父節點
當前提交
d382818608
共有 1 個文件被更改,包括 51 次插入35 次删除
  1. 51 35
      dbsyncer-connector/dbsyncer-connector-base/src/test/java/ConnectionTest.java

+ 51 - 35
dbsyncer-connector/dbsyncer-connector-base/src/test/java/ConnectionTest.java

@@ -17,12 +17,23 @@ import org.slf4j.LoggerFactory;
 import org.springframework.jdbc.core.BatchPreparedStatementSetter;
 import org.springframework.jdbc.core.BatchPreparedStatementSetter;
 
 
 import java.nio.charset.Charset;
 import java.nio.charset.Charset;
-import java.sql.*;
+import java.sql.Clob;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Timestamp;
 import java.time.Instant;
 import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
-import java.util.concurrent.*;
+import java.util.concurrent.BrokenBarrierException;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.CyclicBarrier;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 
 
 /**
 /**
  * @Author AE86
  * @Author AE86
@@ -224,19 +235,22 @@ public class ConnectionTest {
 
 
         long begin = Instant.now().toEpochMilli();
         long begin = Instant.now().toEpochMilli();
         final int threadSize = 10;
         final int threadSize = 10;
+        final int num = 100;
+        final int batch = 100;
         final ExecutorService pool = Executors.newFixedThreadPool(threadSize);
         final ExecutorService pool = Executors.newFixedThreadPool(threadSize);
         final CountDownLatch latch = new CountDownLatch(threadSize);
         final CountDownLatch latch = new CountDownLatch(threadSize);
-        final int num = 100;
         final String insert = "INSERT INTO `vote_records_test` (`id`, `user_id`, `vote_num`, `group_id`, `status`, `create_time`) VALUES (?, ?, ?, ?, ?, ?)";
         final String insert = "INSERT INTO `vote_records_test` (`id`, `user_id`, `vote_num`, `group_id`, `status`, `create_time`) VALUES (?, ?, ?, ?, ?, ?)";
-        final String update = "UPDATE `test`.`vote_records` SET `user_id` = ?, `create_time` = now() WHERE `id` = ?";
-        final String delete = "delete from `test`.`vote_records` WHERE `id` = ?";
+        final String update = "UPDATE `test`.`vote_records_test` SET `user_id` = ?, `create_time` = now() WHERE `id` = ?";
+        final String delete = "DELETE from `test`.`vote_records_test` WHERE `id` = ?";
 
 
-        System.out.println("-----------------模拟总数:" + (threadSize * threadSize * num));
+        logger.info("-----------------模拟总数:{}", threadSize * threadSize * num);
         for (int i = 0; i < threadSize; i++) {
         for (int i = 0; i < threadSize; i++) {
             final int offset = i == 0 ? 0 : i * threadSize;
             final int offset = i == 0 ? 0 : i * threadSize;
             pool.submit(() -> {
             pool.submit(() -> {
                 try {
                 try {
-                    mockData(connectorInstance, num, threadSize, offset, insert, update, delete);
+                    logger.info("{}-开始任务", Thread.currentThread().getName());
+                    mockData(connectorInstance, num, batch, offset, insert, update, delete);
+                    logger.info("{}-结束任务", Thread.currentThread().getName());
                 } catch (Exception e) {
                 } catch (Exception e) {
                     logger.error(e.getMessage());
                     logger.error(e.getMessage());
                 } finally {
                 } finally {
@@ -255,35 +269,37 @@ public class ConnectionTest {
     }
     }
 
 
     private void mockData(DatabaseConnectorInstance connectorInstance, int num, int batch, int offset, String insert, String update, String delete) {
     private void mockData(DatabaseConnectorInstance connectorInstance, int num, int batch, int offset, String insert, String update, String delete) {
-        List<Object[]> insertData = new ArrayList<>();
-        List<Object[]> updateData = new ArrayList<>();
-        List<Object[]> deleteData = new ArrayList<>();
-        for (int j = 1; j <= batch; j++) {
-            // insert
-            Object[] insertArgs = new Object[6];
-            insertArgs[0] = j + offset;
-            insertArgs[1] = randomUserId(20);
-            insertArgs[2] = RandomUtil.nextInt(1, 9999);
-            insertArgs[3] = RandomUtil.nextInt(0, 3);
-            insertArgs[4] = RandomUtil.nextInt(1, 3);
-            insertArgs[5] = Timestamp.valueOf(LocalDateTime.now());
-            insertData.add(insertArgs);
-
-            // update
-            Object[] updateArgs = new Object[2];
-            updateArgs[0] = randomUserId(20);
-            updateArgs[1] = j + offset;
-            updateData.add(updateArgs);
-
-            // delete
-            Object[] deleteArgs = new Object[1];
-            deleteArgs[0] = j + offset;
-            deleteData.add(deleteArgs);
+        for (int i = 0; i < num; i++) {
+            List<Object[]> insertData = new ArrayList<>();
+            List<Object[]> updateData = new ArrayList<>();
+            List<Object[]> deleteData = new ArrayList<>();
+            for (int j = 1; j <= batch; j++) {
+                // insert
+                Object[] insertArgs = new Object[6];
+                insertArgs[0] = j + offset;
+                insertArgs[1] = randomUserId(20);
+                insertArgs[2] = RandomUtil.nextInt(1, 9999);
+                insertArgs[3] = RandomUtil.nextInt(0, 3);
+                insertArgs[4] = RandomUtil.nextInt(1, 3);
+                insertArgs[5] = Timestamp.valueOf(LocalDateTime.now());
+                insertData.add(insertArgs);
+
+                // update
+                Object[] updateArgs = new Object[2];
+                updateArgs[0] = randomUserId(20);
+                updateArgs[1] = j + offset;
+                updateData.add(updateArgs);
+
+                // delete
+                Object[] deleteArgs = new Object[1];
+                deleteArgs[0] = j + offset;
+                deleteData.add(deleteArgs);
+            }
+            connectorInstance.execute(databaseTemplate -> databaseTemplate.batchUpdate(insert, insertData));
+            connectorInstance.execute(databaseTemplate -> databaseTemplate.batchUpdate(update, updateData));
+            connectorInstance.execute(databaseTemplate -> databaseTemplate.batchUpdate(delete, deleteData));
+            logger.info("{}-已处理, 数据行[{}, {}], 批次:{}", Thread.currentThread().getName(), offset, offset + batch, i + 1);
         }
         }
-        connectorInstance.execute(databaseTemplate -> databaseTemplate.batchUpdate(insert, insertData));
-        connectorInstance.execute(databaseTemplate -> databaseTemplate.batchUpdate(update, updateData));
-        connectorInstance.execute(databaseTemplate -> databaseTemplate.batchUpdate(delete, deleteData));
-        System.out.println(Thread.currentThread().getName() + "-----------------正在已处理:" + offset + " - " + (offset + batch));
     }
     }
 
 
     private final static String STR = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
     private final static String STR = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";