Browse Source

feat: 添加对customer_service.cfg_[_netconf_std表中area3字段的更新(基站小区等级)

weijianghai 2 years ago
parent
commit
bffb6a75a9

+ 24 - 0
build-dir/prod/gpload/cfm.cfg_0_4g_siteinfo.yml

@@ -0,0 +1,24 @@
+VERSION: 1.0.0.1
+DATABASE: sqmmt
+USER: sqmdb
+HOST: 192.168.70.109
+PORT: 5432
+GPLOAD:
+  PRELOAD:
+    - TRUNCATE: false
+    - REUSE_TABLES: false
+  INPUT:
+    - SOURCE:
+        LOCAL_HOSTNAME:
+          - 192.168.10.7
+        PORT: 54331
+        FILE:
+          - /data/site_info/cfm.cfg_0_4g_siteinfo.csv
+    - FORMAT: csv
+    - DELIMITER: ','
+    - ENCODING: utf-8
+    - ERROR_LIMIT: 20000000
+    - LOG_ERRORS: true
+  OUTPUT:
+    - TABLE: cfm.cfg_0_4g_siteinfo
+    - MODE: insert

+ 24 - 0
build-dir/prod/gpload/cfm.cfg_0_5g_siteinfo.yml

@@ -0,0 +1,24 @@
+VERSION: 1.0.0.1
+DATABASE: sqmmt
+USER: sqmdb
+HOST: 192.168.70.109
+PORT: 5432
+GPLOAD:
+  PRELOAD:
+    - TRUNCATE: false
+    - REUSE_TABLES: false
+  INPUT:
+    - SOURCE:
+        LOCAL_HOSTNAME:
+          - 192.168.10.7
+        PORT: 54331
+        FILE:
+          - /data/site_info/cfm.cfg_0_5g_siteinfo.csv
+    - FORMAT: csv
+    - DELIMITER: ','
+    - ENCODING: utf-8
+    - ERROR_LIMIT: 20000000
+    - LOG_ERRORS: true
+  OUTPUT:
+    - TABLE: cfm.cfg_0_5g_siteinfo
+    - MODE: insert

+ 24 - 0
build-dir/prod/gpload/customer_service.cfg_cell_info.yml

@@ -0,0 +1,24 @@
+VERSION: 1.0.0.1
+DATABASE: sqmmt
+USER: sqmdb
+HOST: 192.168.70.109
+PORT: 5432
+GPLOAD:
+  PRELOAD:
+    - TRUNCATE: false
+    - REUSE_TABLES: false
+  INPUT:
+    - SOURCE:
+        LOCAL_HOSTNAME:
+          - 192.168.10.7
+        PORT: 54331
+        FILE:
+          - /data/site_info/customer_service.cfg_cell_info.csv
+    - FORMAT: csv
+    - DELIMITER: ','
+    - ENCODING: utf-8
+    - ERROR_LIMIT: 20000000
+    - LOG_ERRORS: true
+  OUTPUT:
+    - TABLE: customer_service.cfg_cell_info
+    - MODE: insert

+ 24 - 0
build-dir/prod/gpload/customer_service.cfg_p_netconf_std.yml

@@ -0,0 +1,24 @@
+VERSION: 1.0.0.1
+DATABASE: sqmmt
+USER: sqmdb
+HOST: 192.168.70.109
+PORT: 5432
+GPLOAD:
+  PRELOAD:
+    - TRUNCATE: false
+    - REUSE_TABLES: false
+  INPUT:
+    - SOURCE:
+        LOCAL_HOSTNAME:
+          - 192.168.10.7
+        PORT: 54331
+        FILE:
+          - /data/site_info/customer_service.cfg_p_netconf_std.csv
+    - FORMAT: csv
+    - DELIMITER: ','
+    - ENCODING: utf-8
+    - ERROR_LIMIT: 20000000
+    - LOG_ERRORS: true
+  OUTPUT:
+    - TABLE: customer_service.cfg_p_netconf_std
+    - MODE: insert

+ 15 - 0
build-dir/prod/gpload/gpload.sh

@@ -0,0 +1,15 @@
+#!/bin/bash
+
+source /usr/local/greenplum-db-clients/greenplum_loaders_path.sh
+table=$1
+# 由于gpload需要输入密码,这里需要使用expect执行
+password=sqmdb_1QAZ
+expect -c "
+set timeout 300
+spawn gpload -f /data/site_info/gpload/${table}.yml
+expect {
+\"connecting (yes/no)?\" { send \"yes\n\";exp_continue }
+\"Password:\" { send \"${password}\n\"; exp_continue}
+timeout { puts \"超时\" exit 2}
+}
+"

+ 3 - 0
build-dir/prod/run.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+
+nohup java -jar /data/site_info/site_info.jar >/dev/null 2>&1 &

+ 0 - 0
build-dir/stop.sh → build-dir/prod/stop.sh


+ 0 - 0
build-dir/gpload/cfm.cfg_0_4g_siteinfo.yml → build-dir/test/gpload/cfm.cfg_0_4g_siteinfo.yml


+ 0 - 0
build-dir/gpload/cfm.cfg_0_5g_siteinfo.yml → build-dir/test/gpload/cfm.cfg_0_5g_siteinfo.yml


+ 0 - 0
build-dir/gpload/customer_service.cfg_cell_info.yml → build-dir/test/gpload/customer_service.cfg_cell_info.yml


+ 0 - 0
build-dir/gpload/customer_service.cfg_p_netconf_std.yml → build-dir/test/gpload/customer_service.cfg_p_netconf_std.yml


+ 0 - 0
build-dir/gpload/gpload.sh → build-dir/test/gpload/gpload.sh


+ 2 - 0
build-dir/run.sh → build-dir/test/run.sh

@@ -1 +1,3 @@
+#!/bin/bash
+
 nohup java -jar /data1/site_info/site_info.jar >/dev/null 2>&1 &

+ 5 - 0
build-dir/test/stop.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+
+for i in $(ps -ef | grep site_info.jar | grep -v grep | awk '{print $2}'); do
+  kill -9 "$i"
+done

+ 15 - 0
doc/部署文档/建表语句/cfm.cfg_0_4g_sitelevel.sql

@@ -0,0 +1,15 @@
+-- cfm.cfg_0_4g_sitelevel definition
+
+-- Drop table
+
+-- DROP TABLE cfm.cfg_0_4g_sitelevel;
+
+CREATE TABLE cfm.cfg_0_4g_sitelevel
+(
+    site_id   varchar NULL,
+    site_name varchar NULL,
+    area3     varchar NULL
+);
+
+
+-- cfm.cfg_0_4g_sitelevel foreign keys

+ 12 - 0
doc/部署文档/建表语句/cfm.cfg_0_5g_sitelevel.sql

@@ -0,0 +1,12 @@
+-- cfm.cfg_0_5g_sitelevel definition
+
+-- Drop table
+
+-- DROP TABLE cfm.cfg_0_5g_sitelevel;
+
+CREATE TABLE cfm.cfg_0_5g_sitelevel
+(
+    site_id   varchar NULL,
+    site_name varchar NULL,
+    area3     varchar NULL
+);

+ 53 - 39
src/main/java/com/nokia/common/gpload/GploadUtil.java

@@ -3,6 +3,7 @@ package com.nokia.common.gpload;
 import com.nokia.common.gpload.entity.GploadResult;
 import com.xxl.job.core.context.XxlJobHelper;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.util.CollectionUtils;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -15,66 +16,79 @@ import java.util.regex.Pattern;
 @Slf4j
 public class GploadUtil {
     public static final Pattern PATTERN = Pattern.compile("= (\\d+)");
-    private static Process process = null;
-    private static BufferedReader reader = null;
 
     public static GploadResult gpload(String gploadCommand) {
+        Process process = null;
         GploadResult result = new GploadResult();
         result.setTaskStatus(true);
         try {
             process = Runtime.getRuntime().exec(gploadCommand);
-            reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
-            List<String> lines = new ArrayList<>();
-            String line;
-            while ((line = reader.readLine()) != null) {
-                lines.add(line);
-            }
-            log.info("gpload result: " + lines);
-            XxlJobHelper.log("gpload result: " + lines);
-            for (String s : lines) {
-                if (s.contains("|rows Inserted")) {
-                    result.setInsertedCount(getNum(s));
-                }
-                if (s.contains("|rows Updated")) {
-                    result.setUpdatedCount(getNum(s));
-                }
-                if (s.contains("|data formatting errors")) {
-                    result.setErrorCount(getNum(s));
+            try (BufferedReader inputReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
+                 BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()))) {
+                String line;
+                // 读取错误流
+                List<String> error = new ArrayList<>();
+                while ((line = errorReader.readLine()) != null) {
+                    error.add(line);
                 }
-                if (s.contains("ERROR") || s.contains("gpload failed")) {
+                if (!CollectionUtils.isEmpty(error)) {
+                    log.info("gpload errorStream: " + error);
+                    XxlJobHelper.log("gpload errorStream: " + error);
                     result.setTaskStatus(false);
+                    result.setMessage(error.toString());
+                }
+
+                // 读取标准流
+                List<String> input = new ArrayList<>();
+                while ((line = inputReader.readLine()) != null) {
+                    input.add(line);
                 }
-                if (s.contains("ERROR")) {
-                    result.setMessage(s);
+                if (!CollectionUtils.isEmpty(input)) {
+                    log.info("gpload inputStream: " + input);
+                    XxlJobHelper.log("gpload inputStream: " + input);
+                    for (String s : input) {
+                        if (s.contains("|rows Inserted")) {
+                            result.setInsertedCount(getNum(s));
+                        }
+                        if (s.contains("|rows Updated")) {
+                            result.setUpdatedCount(getNum(s));
+                        }
+                        if (s.contains("|data formatting errors")) {
+                            result.setErrorCount(getNum(s));
+                        }
+                        if (s.contains("ERROR") || s.contains("gpload failed")) {
+                            result.setTaskStatus(false);
+                        }
+                        if (s.contains("ERROR")) {
+                            result.setMessage(result.getMessage() + "\n" + s);
+                        }
+                    }
                 }
             }
+
+            int code = process.waitFor();
+            if (code != 0) {
+                result.setTaskStatus(false);
+            }
         } catch (IOException e) {
             log.error("gpload发生异常: {}", e.getMessage(), e);
             XxlJobHelper.log("gpload发生异常: {}", e.getMessage(), e);
             result.setTaskStatus(false);
             result.setMessage(e.getMessage());
+        } catch (InterruptedException e) {
+            log.error("gpload发生异常: {}", e.getMessage(), e);
+            XxlJobHelper.log("gpload发生异常: {}", e.getMessage(), e);
+            result.setTaskStatus(false);
+            result.setMessage(e.getMessage());
+            Thread.currentThread().interrupt();
         } finally {
             log.info("gpload的结果为: {}", result);
             XxlJobHelper.log("gpload的结果为: {}", result);
-            destroy();
-        }
-        return result;
-    }
-
-    private static void destroy() {
-        if (reader != null) {
-            try {
-                reader.close();
-            } catch (IOException e) {
-                log.error("close reader error: {}", e.getMessage(), e);
-                XxlJobHelper.log("close reader error: {}", e.getMessage(), e);
+            if (process != null) {
+                process.destroy();
             }
-            reader = null;
-        }
-        if (process != null) {
-            process.destroy();
-            process = null;
         }
+        return result;
     }
 
     /**

+ 1 - 1
src/main/java/com/nokia/common/gpload/entity/GploadResult.java

@@ -8,5 +8,5 @@ public class GploadResult {
     private Integer insertedCount;
     private Integer updatedCount;
     private Integer errorCount;
-    private String message;
+    private String message = "";
 }

+ 43 - 24
src/main/java/com/nokia/siteinfo/task/UpdateTask.java

@@ -7,6 +7,7 @@ import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.csv.CSVFormat;
 import org.apache.commons.csv.CSVPrinter;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Component;
 
@@ -25,6 +26,9 @@ import java.util.Map;
 @Component
 @Slf4j
 public class UpdateTask {
+    @Value("${gpload.shell.path}")
+    private String gploadShellPath;
+
     private final JdbcTemplate inputJdbcTemplate;
     private final JdbcTemplate outputJdbcTemplate;
 
@@ -37,11 +41,12 @@ public class UpdateTask {
     @XxlJob("siteInfoJobHandler")
     public void siteInfoJobHandler() {
         try {
+            Map<Object, Object> siteLevelMap = getSiteLevelMap();
             Map<String, Map<String, Object>> four = new HashMap<>();
             Map<String, Map<String, Object>> five = new HashMap<>();
             update4g(four);
             update5g(five);
-            writeCsvs(four, five);
+            writeCsvs(four, five, siteLevelMap);
             backup("customer_service.cfg_p_netconf_std");
             gpload("customer_service.cfg_p_netconf_std");
             backup("customer_service.cfg_cell_info");
@@ -53,6 +58,20 @@ public class UpdateTask {
         }
     }
 
+    private Map<Object, Object> getSiteLevelMap() {
+        Map<Object, Object> siteLevelMap = new HashMap<>();
+        String sql = "select * from cfm.cfg_0_4g_sitelevel";
+        List<Map<String, Object>> l1 = outputJdbcTemplate.queryForList(sql);
+        log.info("cfg_0_4g_sitelevel: {}", l1.size());
+        l1.forEach(t -> siteLevelMap.put(t.get("site_id"), t.get("area3")));
+        sql = "select * from cfm.cfg_0_5g_sitelevel";
+        List<Map<String, Object>> l2 = outputJdbcTemplate.queryForList(sql);
+        log.info("cfg_0_5g_sitelevel: {}", l2.size());
+        l2.forEach(t -> siteLevelMap.put(t.get("site_id"), t.get("area3")));
+        log.info("siteLevelMap: {}", siteLevelMap.size());
+        return siteLevelMap;
+    }
+
     private void update4g(Map<String, Map<String, Object>> map) throws IOException {
         // 查询o2p.cfg_0_4g_siteinfo
         String sql = "select * from o2p.cfg_0_4g_siteinfo";
@@ -100,7 +119,8 @@ public class UpdateTask {
     /**
      * 将cfg_0_4g_siteinfo、cfg_0_5g_siteinfo转成cfg_p_netconf_std、cfg_cell_info写入csv文件
      */
-    private void writeCsvs(Map<String, Map<String, Object>> four, Map<String, Map<String, Object>> five) throws IOException {
+    private void writeCsvs(Map<String, Map<String, Object>> four, Map<String, Map<String, Object>> five,
+                           Map<Object, Object> siteLevelMap) throws IOException {
         try (OutputStreamWriter osw1 = new OutputStreamWriter(
                 Files.newOutputStream(Paths.get("customer_service.cfg_p_netconf_std.csv")),
                 StandardCharsets.UTF_8);
@@ -110,8 +130,8 @@ public class UpdateTask {
                      StandardCharsets.UTF_8);
              CSVPrinter printer2 = new CSVPrinter(osw2, CSVFormat.DEFAULT);) {
             Map<Object, Map<String, Object>> map = new HashMap<>();
-            fourGCfgPNetconfStd(four, map);
-            fiveGCfgPNetconfStd(five, map);
+            fourGCfgPNetconfStd(four, map, siteLevelMap);
+            fiveGCfgPNetconfStd(five, map, siteLevelMap);
             log.info("cfg_p_netconf_std: {}", map.size());
             XxlJobHelper.log("cfg_p_netconf_std: {}", map.size());
             printCfgPNetconfStd(printer1, map);
@@ -122,7 +142,7 @@ public class UpdateTask {
     /**
      * cfg_0_5g_siteinfo -> cfg_p_netconf_std
      */
-    private void fiveGCfgPNetconfStd(Map<String, Map<String, Object>> five, Map<Object, Map<String, Object>> map) {
+    private void fiveGCfgPNetconfStd(Map<String, Map<String, Object>> five, Map<Object, Map<String, Object>> map, Map<Object, Object> siteLevelMap) {
         for (Map<String, Object> t : five.values()) {
             Map<String, Object> m = new HashMap<>();
             BigDecimal gnbid = (BigDecimal) t.get("gnbid");
@@ -133,8 +153,8 @@ public class UpdateTask {
             m.put("city_id", t.get("city_code"));
             m.put("city_name", t.get("city_name"));
             m.put("area_id", t.get("district_name"));
-            m.put("core_ne_name", t.get(""));
-            m.put("radio_ne_name", t.get(""));
+            m.put("core_ne_name", "");
+            m.put("radio_ne_name", "");
             m.put("site_name", t.get("station_name"));
             m.put("site_id", gnbid);
             m.put("cell_no", cell_id);
@@ -144,7 +164,7 @@ public class UpdateTask {
             m.put("gnb_cu_id", "");
             m.put("gnb_du_id", "");
             m.put("gsm_cell_id", "");
-            m.put("network_type", 4);
+            m.put("network_type", 5);
             m.put("type_5g", "");
             m.put("tac", "");
             m.put("cover_type", "宏站".equals(t.get("station_type")) ? "室外" : "室内");
@@ -154,7 +174,7 @@ public class UpdateTask {
             m.put("grid", "");
             m.put("areatype", t.get("scene"));
             m.put("sub_areatype", "");
-            m.put("area3", "");
+            m.put("area3", siteLevelMap.get(gnbid.toString()));
             m.put("longitude", t.get("lon"));
             m.put("latitude", t.get("lat"));
             m.put("vendor", t.get("vender"));
@@ -162,11 +182,11 @@ public class UpdateTask {
             m.put("downtilt", ((BigDecimal) t.get("m_downtilt")).add((BigDecimal) t.get("e_downtilt")));
             m.put("azimuth", t.get("direction"));
             m.put("fr", t.get("down_freq"));
-            m.put("scramber", t.get(""));
+            m.put("scramber", "");
             m.put("province_id", t.get("河北省"));
-            m.put("bsbusip", t.get(""));
-            m.put("bsbusip_1", t.get(""));
-            m.put("isanchor", t.get(""));
+            m.put("bsbusip", "");
+            m.put("bsbusip_1", "");
+            m.put("isanchor", "");
             m.put("operator", t.get("construction"));
             m.put("isshare", "");
             m.put("slice_type", "");
@@ -177,7 +197,7 @@ public class UpdateTask {
     /**
      * cfg_0_4g_siteinfo -> cfg_p_netconf_std
      */
-    private void fourGCfgPNetconfStd(Map<String, Map<String, Object>> four, Map<Object, Map<String, Object>> map) {
+    private void fourGCfgPNetconfStd(Map<String, Map<String, Object>> four, Map<Object, Map<String, Object>> map, Map<Object, Object> siteLevelMap) {
         for (Map<String, Object> t : four.values()) {
             Map<String, Object> m = new HashMap<>();
             BigDecimal enbid = (BigDecimal) t.get("enbid");
@@ -188,8 +208,8 @@ public class UpdateTask {
             m.put("city_id", t.get("city_code"));
             m.put("city_name", t.get("city_name"));
             m.put("area_id", t.get("district_name"));
-            m.put("core_ne_name", t.get(""));
-            m.put("radio_ne_name", t.get(""));
+            m.put("core_ne_name", "");
+            m.put("radio_ne_name", "");
             m.put("site_name", t.get("bbu_name"));
             m.put("site_id", enbid);
             m.put("cell_no", cell_id);
@@ -209,7 +229,7 @@ public class UpdateTask {
             m.put("grid", "");
             m.put("areatype", t.get("scene"));
             m.put("sub_areatype", "");
-            m.put("area3", "");
+            m.put("area3", siteLevelMap.get(enbid.toString()));
             m.put("longitude", t.get("lon"));
             m.put("latitude", t.get("lat"));
             m.put("vendor", t.get("vender"));
@@ -217,11 +237,11 @@ public class UpdateTask {
             m.put("downtilt", ((BigDecimal) t.get("m_downtilt")).add((BigDecimal) t.get("e_downtilt")));
             m.put("azimuth", t.get("direction"));
             m.put("fr", t.get("down_freq"));
-            m.put("scramber", t.get(""));
+            m.put("scramber", "");
             m.put("province_id", t.get("河北省"));
-            m.put("bsbusip", t.get(""));
-            m.put("bsbusip_1", t.get(""));
-            m.put("isanchor", t.get(""));
+            m.put("bsbusip", "");
+            m.put("bsbusip_1", "");
+            m.put("isanchor", "");
             m.put("operator", t.get("construction"));
             m.put("isshare", "");
             m.put("slice_type", "");
@@ -282,7 +302,7 @@ public class UpdateTask {
     }
 
     private void gpload(String table) throws IOException {
-        String gploadCommand = "sh /data1/site_info/gpload/gpload.sh " + table;
+        String gploadCommand = "sh " + gploadShellPath + " " + table;
         GploadResult gpload = GploadUtil.gpload(gploadCommand);
         if (Boolean.TRUE.equals(gpload.getTaskStatus())) {
             log.info("gpload {} 完成: {}", table, gpload);
@@ -290,8 +310,7 @@ public class UpdateTask {
             // 删除文件
             Files.deleteIfExists(Paths.get(table + ".csv"));
         } else {
-            log.error("gpload {} 失败: {}", table, gpload.getMessage());
-            XxlJobHelper.log("gpload {} 失败: {}", table, gpload.getMessage());
+            throw new RuntimeException("gpload " + table + " 失败: " + gpload.getMessage());
         }
     }
 

+ 28 - 0
src/main/resources/application-prod.properties

@@ -0,0 +1,28 @@
+server.port=12093
+spring.application.name=siteinfo_update
+spring.datasource.input.jdbc-url=jdbc:postgresql://192.168.10.9:5432/sqmmt
+spring.datasource.input.username=pmparse
+spring.datasource.input.password=Richr00t#
+spring.datasource.input.driverClassName=org.postgresql.Driver
+
+spring.datasource.output.jdbc-url=jdbc:postgresql://192.168.70.109:5432/sqmmt
+spring.datasource.output.username=sqmdb
+spring.datasource.output.password=sqmdb_1QAZ
+spring.datasource.output.driverClassName=org.postgresql.Driver
+### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+xxl.job.admin.addresses=http://192.168.10.7:8087/xxl-job-admin
+### xxl-job, access token
+xxl.job.accessToken=
+### xxl-job executor appname
+xxl.job.executor.appname=site-info
+### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
+xxl.job.executor.address=
+### xxl-job executor server-info
+xxl.job.executor.ip=
+xxl.job.executor.port=9999
+### xxl-job executor log-path
+xxl.job.executor.logpath=/data/site_info/xxl/
+### xxl-job executor log-retention-days
+xxl.job.executor.logretentiondays=30
+
+gpload.shell.path=/data/site_info/gpload/gpload.sh

+ 28 - 0
src/main/resources/application-test.properties

@@ -0,0 +1,28 @@
+server.port=12093
+spring.application.name=siteinfo_update
+spring.datasource.input.jdbc-url=jdbc:postgresql://192.168.10.9:5432/sqmmt
+spring.datasource.input.username=pmparse
+spring.datasource.input.password=Richr00t#
+spring.datasource.input.driverClassName=org.postgresql.Driver
+
+spring.datasource.output.jdbc-url=jdbc:postgresql://192.168.50.5:5432/sqmmt
+spring.datasource.output.username=sqmdb
+spring.datasource.output.password=sqmdb_1QAZ
+spring.datasource.output.driverClassName=org.postgresql.Driver
+### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
+xxl.job.admin.addresses=http://192.168.10.7:8087/xxl-job-admin
+### xxl-job, access token
+xxl.job.accessToken=
+### xxl-job executor appname
+xxl.job.executor.appname=site-info-test
+### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
+xxl.job.executor.address=
+### xxl-job executor server-info
+xxl.job.executor.ip=
+xxl.job.executor.port=9999
+### xxl-job executor log-path
+xxl.job.executor.logpath=/data1/site_info/xxl/
+### xxl-job executor log-retention-days
+xxl.job.executor.logretentiondays=30
+
+gpload.shell.path=/data1/site_info/gpload/gpload.sh

+ 5 - 2
src/main/resources/application.properties

@@ -1,3 +1,5 @@
+spring.profiles.active=prod
+logging.level.root=info
 server.port=12093
 spring.application.name=siteinfo_update
 spring.datasource.input.jdbc-url=jdbc:postgresql://192.168.10.9:5432/sqmmt
@@ -21,7 +23,8 @@ xxl.job.executor.address=
 xxl.job.executor.ip=
 xxl.job.executor.port=9999
 ### xxl-job executor log-path
-xxl.job.executor.logpath=/data1/site_info/xxl/
+xxl.job.executor.logpath=/data/site_info/xxl/
 ### xxl-job executor log-retention-days
 xxl.job.executor.logretentiondays=30
-logging.level.root=info
+
+gpload.shell.path=/data/site_info/gpload/gpload.sh

+ 4 - 4
src/main/resources/logback-spring.xml

@@ -3,7 +3,7 @@
     <property name="PATH" value="./log"/>
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
         <encoder>
-            <Pattern>%d{HH:mm:ss.SSS} %highlight(%-5level) %blue(%logger:%line) %msg%n</Pattern>
+            <Pattern>%d{HH:mm:ss.SSS} %highlight(%-5level) %yellow(%X{traceId}) %cyan(%logger:%line) %msg%n</Pattern>
         </encoder>
     </appender>
     <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -17,7 +17,7 @@
             <totalSizeCap>20GB</totalSizeCap>
         </rollingPolicy>
         <encoder>
-            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %blue(%logger:%line) %msg%n</Pattern>
+            <Pattern>%d %highlight(%-5level) %yellow(%X{traceId}) %cyan(%logger:%line) %msg%n</Pattern>
         </encoder>
     </appender>
     <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -31,7 +31,7 @@
             <totalSizeCap>20GB</totalSizeCap>
         </rollingPolicy>
         <encoder>
-            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %blue(%logger:%line) %msg%n</Pattern>
+            <Pattern>%d %highlight(%-5level) %yellow(%X{traceId}) %cyan(%logger:%line) %msg%n</Pattern>
         </encoder>
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>ERROR</level>
@@ -42,7 +42,7 @@
     <root level="INFO">
         <appender-ref ref="STDOUT"/>
     </root>
-    <root level="INFO">
+    <root level="TRACE">
         <appender-ref ref="TRACE_FILE"/>
     </root>
     <root level="ERROR">