package comm import ( "go_dreamfactory/pb" "sync" ) var taskParamPool = &sync.Pool{ New: func() interface{} { return &TaskParam{} }, } //GetBuriedParam func GetTaskParam(t TaskType, p ...int32) *TaskParam { task := taskParamPool.Get().(*TaskParam) task.TT = t task.Params = append(task.Params, p...) return task } func PuttaskParam(r *TaskParam) { r.Params = r.Params[:0] taskParamPool.Put(r) } var buriedParamPool = &sync.Pool{ New: func() interface{} { return &pb.BuriedParam{ Value: 0, Filter: make([]int32, 0), } }, } //普通任务 func GetBuriedParam(t TaskType, vaule int32, p ...int32) *pb.BuriedParam { task := buriedParamPool.Get().(*pb.BuriedParam) task.TaskType = int32(t) task.Value = vaule if len(p) > 0 { task.Filter = append(task.Filter, p...) } return task } //统计型任务 func GetBuriedParam2(t TaskType, statistics string, p ...int32) *pb.BuriedParam { task := buriedParamPool.Get().(*pb.BuriedParam) task.TaskType = int32(t) task.Statistics = statistics if len(p) > 0 { task.Filter = append(task.Filter, p...) } return task } func PutburiedParam(r *pb.BuriedParam) { r.Filter = r.Filter[:0] r.Value = 0 r.Statistics = "" buriedParamPool.Put(r) }