fix: 携程溢出、优化若干
This commit is contained in:
@@ -6,10 +6,13 @@ import (
|
||||
"github.com/Mmx233/config"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
var Config srunModels.Config
|
||||
|
||||
var Timeout time.Duration
|
||||
|
||||
func init() {
|
||||
initFlags()
|
||||
|
||||
@@ -48,4 +51,7 @@ func init() {
|
||||
log.Println("读取配置文件失败:\n", e.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
Timeout = time.Duration(Config.Settings.Timeout) * time.Second
|
||||
initTransport()
|
||||
}
|
||||
|
||||
37
global/transport.go
Normal file
37
global/transport.go
Normal file
@@ -0,0 +1,37 @@
|
||||
package global
|
||||
|
||||
import (
|
||||
"github.com/Mmx233/tool"
|
||||
"net"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
var transport *http.Transport
|
||||
|
||||
var transports map[net.Addr]*http.Transport
|
||||
|
||||
func Transports(addr net.Addr) *http.Transport {
|
||||
if transport != nil {
|
||||
return transport
|
||||
}
|
||||
if transport, ok := transports[addr]; ok {
|
||||
return transport
|
||||
} else {
|
||||
transport = tool.HTTP.GenTransport(&tool.GenTransport{
|
||||
Timeout: Timeout,
|
||||
LocalAddr: addr,
|
||||
})
|
||||
transports[addr] = transport
|
||||
return transport
|
||||
}
|
||||
}
|
||||
|
||||
func initTransport() {
|
||||
if Config.Settings.Interfaces == "" {
|
||||
transport = tool.HTTP.GenTransport(&tool.GenTransport{
|
||||
Timeout: Timeout,
|
||||
})
|
||||
} else {
|
||||
transports = make(map[net.Addr]*http.Transport, 0)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user