小王 11 месяцев назад
Родитель
Сommit
ff5b288373

+ 1 - 1
src/main/java/com/example/bigsql/job/SqlRestorationJob.java

@@ -22,7 +22,7 @@ public class SqlRestorationJob {
     private CreateDatabasesByV3File createDatabasesByV3File;
 
     //每半小时执行一次
-    @Scheduled(fixedDelay = 600000)
+    @Scheduled(fixedDelay = 300000)
     public void execute() throws Exception {
         log.info("开始执行读取sql文件定时任务");
         createDatabasesByV3File.redSqlZip();

+ 9 - 11
src/main/java/com/example/bigsql/service/CreateDatabasesByV3File.java

@@ -74,7 +74,7 @@ public class CreateDatabasesByV3File {
             //加载数据库驱动
             Class.forName("com.mysql.cj.jdbc.Driver");
             conn = DriverManager.getConnection(url, "root", "la!yibei82nianxueB");
-            String sql = "SELECT * FROM dc_upload_bigsql_file_record d WHERE d.status = '0'";
+            String sql = "SELECT * FROM dc_upload_bigsql_file_record d WHERE d.status = '0' " + " AND deleted = " + 0 + ";";
             ps = conn.prepareStatement(sql);
             rs = ps.executeQuery();
             List<UploadBigsqlFileRecordBaseVO> uploadBigsqlFileRecordList = new ArrayList<>();
@@ -113,7 +113,7 @@ public class CreateDatabasesByV3File {
             //加载数据库驱动
             Class.forName("com.mysql.cj.jdbc.Driver");
             conn = DriverManager.getConnection(url, "root", "la!yibei82nianxueB");
-            String sql = "UPDATE dc_upload_bigsql_file_record set status = '" + status + "' , db_name = '" + dbName + "' WHERE id = " + id + ";";
+            String sql = "UPDATE dc_upload_bigsql_file_record set status = '" + status + "' , db_name = '" + dbName + "' WHERE id = " + id + " AND deleted = " + 0 + ";";
             ps = conn.prepareStatement(sql);
             ps.executeUpdate();
         } catch (Exception e) {
@@ -170,9 +170,10 @@ public class CreateDatabasesByV3File {
                     // 将数据以CSV格式写入文件
                     fileWriterMap.get(tableName).write(String.join(",", data));
                     fileWriterMap.get(tableName).write("\n");
+                    fileWriterMap.get(tableName).flush();
                 }
             }
-        } catch (IOException e) {
+        } catch (Exception e) {
             e.printStackTrace();
         }
     }
@@ -206,8 +207,8 @@ public class CreateDatabasesByV3File {
         String path = "/home/bigsql/";
         Map<String, FileWriter> fileWriterMap = new HashMap<>();
         File file = new File(path);
-        for (UploadBigsqlFileRecordBaseVO uploadBigsqlFileRecordBaseVO : list) {
-            File[] files = searchFile(file, uploadBigsqlFileRecordBaseVO.getFileName());
+        if (!list.isEmpty()) {
+            File[] files = searchFile(file, list.get(0).getFileName());
             //根据文件名查找文件 正常没有数据或只有一条数据
             for (File f : files) {
                 log.info("开始解析sql文件,文件名:" + f.getName());
@@ -216,6 +217,7 @@ public class CreateDatabasesByV3File {
                 //String csvFilePath = "/Users/xiaowang/个人/csvdir/" + name + File.separator;
                 String csvFilePath = "/home/bigsql/csvdir/" + name + File.separator;
                 String sqlPath = "/home/bigsql/sqldir/";
+                //String sqlPath = "/Users/xiaowang/个人/sqldir/";
                 //判断csvFilePath这个目录是否存在 如果不存在则创建目录
                 if (!new File(csvFilePath).exists()) {
                     new File(csvFilePath).mkdirs();
@@ -267,22 +269,18 @@ public class CreateDatabasesByV3File {
                             }
                         }
                     } catch (IOException e) {
-                        updateRecords(uploadBigsqlFileRecordBaseVO.getId(), "2", databasesName);
+                        updateRecords(list.get(0).getId(), "2", databasesName);
                         throw new RuntimeException("读取Sql文件失败:  " + f.getName(), e);
                     }
-
-
                     input.close();
                     //修改cloud数据库表里的状态
-                    updateRecords(uploadBigsqlFileRecordBaseVO.getId(), "1", databasesName);
+                    updateRecords(list.get(0).getId(), "1", databasesName);
                 } catch (Exception e) {
                     log.info("读取zip文件时异常" + e);
                 } finally {
                     input.close();
                 }
-
                 log.info("表结构导入完毕,开始进行表数据导入");
-
                 File csvFile = new File(csvFilePath);
                 File[] csvFiles = csvFile.listFiles();
                 if (csvFiles != null) {