- 将最大重试次数从3次调整为5次,提高任务处理容错能力 - 限制核弹卡发送任务循环次数从5次减少到3次,避免过度重试 - 增加用户订单重试次数计数,超过最大重试立即返回失败 - 修正redis订单数据结构变量名,确保数据一致性 - 优化绑定订单ID和卡信息ID失败后的重试和日志处理 - 支持wtr支付接口动态设置请求URL,增加灵活性 - 移除main.go中http性能分析监听,减少无用服务运行 - 修改wtr支付测试用例渠道号及接口地址,便于测试调试 - 统一日志打印规范,提升调试体验
69 lines
1.6 KiB
Go
69 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"gateway/internal/cache"
|
|
"gateway/internal/config"
|
|
_ "gateway/internal/models"
|
|
"gateway/internal/otelTrace"
|
|
"gateway/internal/proxy"
|
|
_ "gateway/internal/routers"
|
|
"gateway/internal/schema/query"
|
|
"gateway/internal/service"
|
|
_ "gateway/internal/service/message"
|
|
"gateway/internal/service/notify"
|
|
"gateway/internal/service/supplier/third_party"
|
|
"gateway/internal/service/supplier/third_party/queue"
|
|
"gateway/internal/utils"
|
|
"github.com/beego/beego/v2/server/web"
|
|
_ "github.com/go-sql-driver/mysql"
|
|
"log"
|
|
_ "net/http/pprof"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
config.GetMQAddress()
|
|
// 初始化代理池
|
|
if err := proxy.InitProxyPool(); err != nil {
|
|
log.Printf("初始化代理池失败: %v", err)
|
|
return
|
|
}
|
|
// 初始化 OpenTelemetry
|
|
cleanup1, cleanup2, cleanup3 := otelTrace.InitTracer()
|
|
defer func() {
|
|
// 使用带超时的 context 来关闭导出器
|
|
ctx := context.Background()
|
|
shutdownCtx, cancel := context.WithTimeout(ctx, 10*time.Second)
|
|
defer cancel()
|
|
|
|
if cleanup1 != nil {
|
|
_ = cleanup1(shutdownCtx)
|
|
}
|
|
if cleanup2 != nil {
|
|
_ = cleanup2(shutdownCtx)
|
|
}
|
|
if cleanup3 != nil {
|
|
_ = cleanup3(shutdownCtx)
|
|
}
|
|
}()
|
|
|
|
// 使用 context.Background() 作为基础 context
|
|
ctx := context.Background()
|
|
|
|
go notify.CreateOrderNotifyConsumer(ctx)
|
|
go query.CreateSupplierOrderQueryCuConsumer(ctx)
|
|
// go query.CreatePayForQueryConsumer(ctx)
|
|
go service.OrderSettleInit(ctx)
|
|
|
|
cache.Start()
|
|
utils.StartProxyPool()
|
|
//tasks.Start(ctx)
|
|
|
|
// 初始化队列系统
|
|
queue.Init(ctx)
|
|
third_party.StartOrderPool(ctx)
|
|
|
|
web.Run()
|
|
}
|