跳转至

规则说明

短链接生产过程相关代码

所在文件 core/short_url.go

func GenerateShortLink(initialLink string) (string, error) {
    if utils.EmptyString(initialLink) {
        return "", fmt.Errorf("empty string")
    }
    urlHash, err := utils.Sha256Of(initialLink)
    if err != nil {
        return "", err
    }
    str := utils.Base58Encode(urlHash)
    return str[:8], nil
}

访问日志处理间隔:1分钟

所在文件 main.go

//清理 Redis 中的访问日志的时间间隔
const ACCESS_LOG_CLEAN_INTERVAL = 1 * time.Minute

func startTicker() error {
    ticker := time.NewTicker(ACCESS_LOG_CLEAN_INTERVAL)
    for range ticker.C {
        log.Println("[StoreAccessLog] Start.")
        if err := service.StoreAccessLogs(); err != nil {
            log.Printf("Error while trying to store access_log %s", err)
        }
        log.Println("[StoreAccessLog] Finish.")
    }
    return nil
}

当日 Top25 访问 URL 榜单处理间隔:5分钟

所在文件 main.go

// Top25 榜单计算间隔
TOP25_CALC_INTERVAL = 5 * time.Minute

func startTicker2() error {
    top25Ticker := time.NewTicker(TOP25_CALC_INTERVAL)
    for range top25Ticker.C {
        log.Println("[Top25Urls Ticker] Start.")
        if err := storage.CallProcedureStatsTop25(); err != nil {
            log.Printf("Error while trying to calculate Top25Urls %s", err)
        }
        log.Println("[Top25Urls Ticker] Finish.")
    }
    return nil
}

仪表盘中几个相关统计处理间隔:5分钟

所在文件 main.go

// 仪表盘页面中其他几个统计数据计算间隔
STATS_SUM_CALC_INTERVAL = 5 * time.Minute

func startTicker4() error {
    statsSumTicker := time.NewTicker(STATS_SUM_CALC_INTERVAL)
    for range statsSumTicker.C {
        log.Println("[StatsSum Ticker] Start.")
        if err := storage.CallProcedureStatsSum(); err != nil {
            log.Printf("Error while trying to calculate StatsSum %s", err)
        }
        log.Println("[StatsSum Ticker] Finish.")
    }
    return nil
}

全部访问日志统计处理间隔:30分钟

所在文件 main.go

//全部访问日志分析统计的间隔
STATS_IP_SUM_CALC_INTERVAL = 30 * time.Minute

func startTicker3() error {
    statsIpSumTicker := time.NewTicker(STATS_IP_SUM_CALC_INTERVAL)
    for range statsIpSumTicker.C {
        log.Println("[StatsIpSum Ticker] Start.")
        if err := storage.CallProcedureStatsIPSum(); err != nil {
            log.Printf("Error while trying to calculate StatsIpSum %s", err)
        }
        log.Println("[StatsIpSum Ticker] Finish.")
    }
    return nil
}