daShangDao_getErpSendPublis.../main.go
2026-06-15 16:18:50 +08:00

117 lines
3.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package main
import (
"fmt"
"log"
"os"
"os/signal"
"syscall"
"github.com/goccy/go-yaml"
handler "getErpSendPublishing/controller"
"getErpSendPublishing/utils"
"getErpSendPublishing/utils/dbConnectUtil"
"github.com/gin-gonic/gin"
)
var config Config
type Config struct {
RedisDb struct {
Addr string `yaml:"addr"`
Password string `yaml:"password"`
db int `yaml:"db"`
} `yaml:"redis-db"`
RedisDbTwo struct {
Addr string `yaml:"addr"`
Password string `yaml:"password"`
db int `yaml:"db"`
} `yaml:"redis-dbTwo"`
}
// 加载配置文件
func loadConfig() error {
configFile, err := os.ReadFile("config.yaml")
if err != nil {
return fmt.Errorf("读取配置文件失败: %v", err)
}
if err := yaml.Unmarshal(configFile, &config); err != nil {
return fmt.Errorf("解析配置文件失败: %v", err)
}
return nil
}
func main() {
// 加载配置
if err := loadConfig(); err != nil {
log.Fatalf("加载配置失败: %v", err)
}
log.Printf("config.RedisDb%v", config.RedisDb)
// 初始化默认Redis用于任务存储- 本地Redis
utils.InitRedis(config.RedisDb.Addr, config.RedisDb.Password, config.RedisDb.db)
// 初始化缓存Redis用于商品图片缓存- 远程Redis
utils.InitCacheRedis(config.RedisDbTwo.Addr, config.RedisDbTwo.Password, config.RedisDbTwo.db)
//// 初始化第二个Redis连接库7用于Header数据查询
if err := utils.InitRedisTwo(); err != nil {
log.Fatalf("RedisTwo初始化失败: %v", err)
}
//log.Println("RedisTwo初始化成功连接到103.236.74.207:6379库7")
// 初始化专门用于ParseFormData函数的Redis连接库13用于查重
if err := utils.InitRedisTwoForParseFormData(); err != nil {
log.Fatalf("RedisTwoForParseFormData初始化失败: %v", err)
}
log.Println("RedisTwoForParseFormData初始化成功连接到36.212.1.63:6379库13")
// 初始化全局MySQL连接池单例被所有查重接口复用防止大量连接同时创建
if _, err := dbConnectUtil.InitDB("zhishu", "XsRR4K3ATizyc5BK", "146.56.227.42", 3306); err != nil {
log.Fatalf("全局MySQL连接初始化失败: %v", err)
}
log.Println("全局MySQL连接池初始化成功zhishu@146.56.227.42:3306最大连接数=20")
// 初始化Gin
router := gin.Default()
// 注册路由
//查重
router.POST("/api/goods/simple", handler.ParseFormData)
//批量查重
router.POST("/api/goods/batchDeduplication", handler.BatchProcessCenterBooks)
//新 - 单挑查重
router.POST("/api/goods/newParseFormData", handler.NewParseFormData)
//新 - 闲鱼多店铺去重
router.POST("/api/goods/goofish/multipleStores", handler.MultipleStores)
//新 - 闲鱼多店去重,本地确认多店铺
router.POST("/api/goods/goofish/singleShopMultipleStores", handler.SingleShopMultipleStores)
// 启动HTTP服务器
go func() {
log.Println("HTTP服务器启动在 :8182")
if err := router.Run(":8182"); err != nil {
log.Fatal("HTTP服务器启动失败:", err)
}
}()
// 等待中断信号
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
<-sigChan
log.Println("接收到中断信号,正在关闭服务...")
log.Println("服务已关闭")
}