规则说明
短链接生产过程相关代码
所在文件 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
}