许鹏程
2023-06-30 3bbfaa3d7d416afbd154576453c8ee9e7e2f8899
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.product.kt.test.service2;
 
import java.util.Map;
 
import com.google.common.collect.Maps;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.product.kt.test.config.SyncConfig;
import net.minidev.json.JSONObject;
 
@Service
public class ToolsThread2 {
 
    private static final Logger LOG = LoggerFactory.getLogger(ToolsThread2.class);
 
    @Autowired
    SyncToolsHandler2 syncToolsHandler;
 
    // 连接map
    public static Map<String, String> dataSourceMap = SyncConfig.DATA_SOURCE_MAP;
 
    // 同步表map
    public static Map<String, JSONObject> readTableMap = SyncConfig.SYNC_TABLE_MAP;
    //每次读取数据量大小
    public static int pageSize = SyncConfig.PAGE_SIZE;
 
    public void receiveBookJobRun() {
        if (!readTableMap.isEmpty()) {
 
            // 入库开始时间
            Long inserOrUpdateBegin = System.currentTimeMillis();
            LOG.info("数据更新开始时间:" + inserOrUpdateBegin);
 
            //遍历同步表
            readTableMap.forEach((tableName, specialField) -> {
                String orderField = specialField.getAsString("order_field");
                String timeField = specialField.getAsString("time_field");
 
                dataSourceMap.forEach((sourceLinkUUID, targetLinkUUID) -> {
                    syncToolsHandler.syncToolData(sourceLinkUUID, tableName, orderField, timeField);
                });
 
            });
            syncToolsHandler.clearExecutor();
            Long inserOrUpdateEnd = System.currentTimeMillis();
            LOG.info("数据更新结束时间:" + inserOrUpdateEnd + "。此次更新数据花费时间为:" + (inserOrUpdateEnd - inserOrUpdateBegin));
        }
    }
}