分离ip库的下载时机
This commit is contained in:
@@ -119,8 +119,6 @@ var (
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
continue
|
|
||||||
|
|
||||||
g.Log().Debugf(ctx, "准备同步服务器:%v,url=%v", v.Name, address+"/callback/update")
|
g.Log().Debugf(ctx, "准备同步服务器:%v,url=%v", v.Name, address+"/callback/update")
|
||||||
get, err := client.Post(ctx, address+"/callback/update", &UpdateReq{
|
get, err := client.Post(ctx, address+"/callback/update", &UpdateReq{
|
||||||
FileUrl: url[v.S3],
|
FileUrl: url[v.S3],
|
||||||
|
|||||||
5
go.mod
5
go.mod
@@ -12,12 +12,10 @@ require (
|
|||||||
github.com/goccy/go-json v0.10.4
|
github.com/goccy/go-json v0.10.4
|
||||||
github.com/gogf/gf/contrib/config/apollo/v2 v2.9.0
|
github.com/gogf/gf/contrib/config/apollo/v2 v2.9.0
|
||||||
github.com/gogf/gf/v2 v2.9.0
|
github.com/gogf/gf/v2 v2.9.0
|
||||||
github.com/google/uuid v1.6.0
|
|
||||||
github.com/gorilla/websocket v1.5.3
|
github.com/gorilla/websocket v1.5.3
|
||||||
github.com/lionsoul2014/ip2region/binding/golang v0.0.0-20241220152942-06eb5c6e8230
|
github.com/lionsoul2014/ip2region/binding/golang v0.0.0-20241220152942-06eb5c6e8230
|
||||||
github.com/minio/minio-go/v7 v7.0.85
|
github.com/minio/minio-go/v7 v7.0.85
|
||||||
github.com/prometheus/client_golang v1.21.1
|
github.com/prometheus/client_golang v1.21.1
|
||||||
github.com/stretchr/testify v1.10.0
|
|
||||||
github.com/xuri/excelize/v2 v2.9.0
|
github.com/xuri/excelize/v2 v2.9.0
|
||||||
golang.org/x/oauth2 v0.24.0
|
golang.org/x/oauth2 v0.24.0
|
||||||
google.golang.org/api v0.44.0
|
google.golang.org/api v0.44.0
|
||||||
@@ -32,7 +30,6 @@ require (
|
|||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
github.com/clbanning/mxj/v2 v2.7.0 // indirect
|
github.com/clbanning/mxj/v2 v2.7.0 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
github.com/elastic/elastic-transport-go/v8 v8.6.1 // indirect
|
github.com/elastic/elastic-transport-go/v8 v8.6.1 // indirect
|
||||||
github.com/emirpasic/gods v1.18.1 // indirect
|
github.com/emirpasic/gods v1.18.1 // indirect
|
||||||
@@ -47,6 +44,7 @@ require (
|
|||||||
github.com/go-pay/xtime v0.0.2 // indirect
|
github.com/go-pay/xtime v0.0.2 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
|
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
|
||||||
github.com/golang/protobuf v1.5.2 // indirect
|
github.com/golang/protobuf v1.5.2 // indirect
|
||||||
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
github.com/googleapis/gax-go/v2 v2.0.5 // indirect
|
github.com/googleapis/gax-go/v2 v2.0.5 // indirect
|
||||||
github.com/grokify/html-strip-tags-go v0.1.0 // indirect
|
github.com/grokify/html-strip-tags-go v0.1.0 // indirect
|
||||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||||
@@ -62,7 +60,6 @@ require (
|
|||||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||||
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
||||||
github.com/pelletier/go-toml v1.9.3 // indirect
|
github.com/pelletier/go-toml v1.9.3 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
||||||
github.com/prometheus/client_model v0.6.1 // indirect
|
github.com/prometheus/client_model v0.6.1 // indirect
|
||||||
github.com/prometheus/common v0.62.0 // indirect
|
github.com/prometheus/common v0.62.0 // indirect
|
||||||
github.com/prometheus/procfs v0.15.1 // indirect
|
github.com/prometheus/procfs v0.15.1 // indirect
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package ip2region
|
package ip2region
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/ayflying/utility_go/internal/boot"
|
|
||||||
"github.com/ayflying/utility_go/service"
|
"github.com/ayflying/utility_go/service"
|
||||||
"github.com/gogf/gf/v2/frame/g"
|
"github.com/gogf/gf/v2/frame/g"
|
||||||
"github.com/gogf/gf/v2/os/gctx"
|
"github.com/gogf/gf/v2/os/gctx"
|
||||||
@@ -12,7 +11,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ctx = gctx.New()
|
ctx = gctx.New()
|
||||||
|
wait = false
|
||||||
)
|
)
|
||||||
|
|
||||||
type sIp2region struct {
|
type sIp2region struct {
|
||||||
@@ -27,9 +27,9 @@ func New() *sIp2region {
|
|||||||
func init() {
|
func init() {
|
||||||
service.RegisterIp2Region(New())
|
service.RegisterIp2Region(New())
|
||||||
|
|
||||||
boot.AddFunc(func() {
|
//boot.AddFunc(func() {
|
||||||
service.Ip2Region().Load()
|
// service.Ip2Region().Load()
|
||||||
})
|
//})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load 加载到内存中
|
// Load 加载到内存中
|
||||||
@@ -39,10 +39,16 @@ func init() {
|
|||||||
func (s *sIp2region) Load() {
|
func (s *sIp2region) Load() {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
var url = "https://github.com/ayflying/resource/raw/refs/heads/main/attachment/ip2region.xdb"
|
|
||||||
var dbPath = "runtime/library/ip2region.xdb"
|
var dbPath = "runtime/library/ip2region.xdb"
|
||||||
|
var url = "https://github.com/ayflying/resource/raw/refs/heads/main/attachment/ip2region.xdb"
|
||||||
|
if wait {
|
||||||
|
return
|
||||||
|
}
|
||||||
if gfile.IsEmpty(dbPath) {
|
if gfile.IsEmpty(dbPath) {
|
||||||
|
wait = true
|
||||||
|
defer func() {
|
||||||
|
wait = false
|
||||||
|
}()
|
||||||
g.Log().Debug(ctx, "等待下载ip库文件")
|
g.Log().Debug(ctx, "等待下载ip库文件")
|
||||||
//下载文件
|
//下载文件
|
||||||
putData, err2 := g.Client().Discovery(nil).Get(ctx, url)
|
putData, err2 := g.Client().Discovery(nil).Get(ctx, url)
|
||||||
@@ -71,6 +77,9 @@ func (s *sIp2region) Load() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *sIp2region) GetIp(ip string) (res []string) {
|
func (s *sIp2region) GetIp(ip string) (res []string) {
|
||||||
|
//初始化加载
|
||||||
|
s.Load()
|
||||||
|
|
||||||
res = make([]string, 5)
|
res = make([]string, 5)
|
||||||
if s.searcher == nil {
|
if s.searcher == nil {
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -337,8 +337,8 @@ func (s *SocketV1) OnClose(conn *WebsocketData) {
|
|||||||
// 1. 更新连接状态或从连接池移除
|
// 1. 更新连接状态或从连接池移除
|
||||||
// 2. 发送通知或清理关联资源
|
// 2. 发送通知或清理关联资源
|
||||||
// 3. 执行特定于业务的断开处理
|
// 3. 执行特定于业务的断开处理
|
||||||
m.Remove(conn.Uuid)
|
|
||||||
conn.Ws.Close()
|
conn.Ws.Close()
|
||||||
|
m.Remove(conn.Uuid)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 是否在线
|
// 是否在线
|
||||||
|
|||||||
Reference in New Issue
Block a user