12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package mhayaProto
- import (
- "fmt"
- "sync"
- "time"
- )
- var (
- clusterPacketPool = &sync.Pool{
- New: func() interface{} {
- return new(ClusterPacket)
- },
- }
- )
- func GetClusterPacket() *ClusterPacket {
- pkg := clusterPacketPool.Get().(*ClusterPacket)
- pkg.BuildTime = time.Now().UnixMilli()
- return pkg
- }
- func BuildClusterPacket(source, target, funcName string) *ClusterPacket {
- clusterPacket := GetClusterPacket()
- clusterPacket.SourcePath = source
- clusterPacket.TargetPath = target
- clusterPacket.FuncName = funcName
- return clusterPacket
- }
- func (x *ClusterPacket) Recycle() {
- x.BuildTime = 0
- x.SourcePath = ""
- x.TargetPath = ""
- x.FuncName = ""
- x.ArgBytes = nil
- x.Session = nil
- clusterPacketPool.Put(x)
- }
- func (x *ClusterPacket) PrintLog() string {
- return fmt.Sprintf("source = %s, target = %s, funcName = %s, bytesLen = %d, session = %v",
- x.SourcePath,
- x.TargetPath,
- x.FuncName,
- len(x.ArgBytes),
- x.Session,
- )
- }
|