mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-17 09:54:45 +08:00
Merge pull request #2 from vipally/master
add GoQueueEx to avoid Logging in origin
This commit is contained in:
@@ -345,12 +345,19 @@ func (slf *CCluster) GetRpcClientByNodeId(nodeid int) *RpcClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (slf *CCluster) Go(bCast bool, NodeServiceMethod string, args interface{}, queueModle bool) error {
|
func (slf *CCluster) Go(bCast bool, NodeServiceMethod string, args interface{}, queueModle bool) error {
|
||||||
|
return slf.goImpl(bCast, NodeServiceMethod, args, queueModle, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (slf *CCluster) goImpl(bCast bool, NodeServiceMethod string, args interface{}, queueModle bool, log bool) error {
|
||||||
var callServiceName string
|
var callServiceName string
|
||||||
var serviceName string
|
var serviceName string
|
||||||
nodeidList := slf.GetNodeList(NodeServiceMethod, &callServiceName, &serviceName)
|
nodeidList := slf.GetNodeList(NodeServiceMethod, &callServiceName, &serviceName)
|
||||||
if len(nodeidList) < 1 {
|
if len(nodeidList) < 1 {
|
||||||
service.GetLogger().Printf(sysmodule.LEVER_ERROR, "CCluster.Go(%s) not find nodes.", NodeServiceMethod)
|
err := fmt.Errorf("CCluster.Go(%s) not find nodes.", NodeServiceMethod)
|
||||||
return fmt.Errorf("CCluster.Go(%s) not find nodes.", NodeServiceMethod)
|
if log {
|
||||||
|
service.GetLogger().Printf(sysmodule.LEVER_ERROR, err.Error())
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if bCast == false && len(nodeidList) > 1 {
|
if bCast == false && len(nodeidList) > 1 {
|
||||||
@@ -364,23 +371,38 @@ func (slf *CCluster) Go(bCast bool, NodeServiceMethod string, args interface{},
|
|||||||
return fmt.Errorf("CCluster.Go(%s) cannot find service %s", NodeServiceMethod, serviceName)
|
return fmt.Errorf("CCluster.Go(%s) cannot find service %s", NodeServiceMethod, serviceName)
|
||||||
}
|
}
|
||||||
if iService.IsInit() == false {
|
if iService.IsInit() == false {
|
||||||
service.GetLogger().Printf(sysmodule.LEVER_WARN, "CCluster.Call(%s): NodeId %d is not init.", NodeServiceMethod, nodeid)
|
err := fmt.Errorf("CCluster.Call(%s): NodeId %d is not init.", NodeServiceMethod, nodeid)
|
||||||
return fmt.Errorf("CCluster.Call(%s): NodeId %d is not init.", NodeServiceMethod, nodeid)
|
if log {
|
||||||
|
service.GetLogger().Printf(sysmodule.LEVER_WARN, err.Error())
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
replyCall := slf.LocalRpcClient.Go(callServiceName, args, nil, nil, queueModle)
|
replyCall := slf.LocalRpcClient.Go(callServiceName, args, nil, nil, queueModle)
|
||||||
if replyCall.Error != nil {
|
if replyCall.Error != nil {
|
||||||
service.GetLogger().Printf(sysmodule.LEVER_ERROR, "CCluster.Go(%s) fail:%v.", NodeServiceMethod, replyCall.Error)
|
err := fmt.Errorf("CCluster.Go(%s) fail:%v.", NodeServiceMethod, replyCall.Error)
|
||||||
|
if log {
|
||||||
|
service.GetLogger().Printf(sysmodule.LEVER_ERROR, err.Error())
|
||||||
|
} else {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pclient := slf.GetClusterClient(nodeid)
|
pclient := slf.GetClusterClient(nodeid)
|
||||||
if pclient == nil {
|
if pclient == nil {
|
||||||
service.GetLogger().Printf(sysmodule.LEVER_ERROR, "CCluster.Go(%s) NodeId %d not find client", NodeServiceMethod, nodeid)
|
err := fmt.Errorf("CCluster.Go(%s) NodeId %d not find client", NodeServiceMethod, nodeid)
|
||||||
return fmt.Errorf("CCluster.Go(%s) NodeId %d not find client", NodeServiceMethod, nodeid)
|
if log {
|
||||||
|
service.GetLogger().Printf(sysmodule.LEVER_ERROR, err.Error())
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
replyCall := pclient.Go(callServiceName, args, nil, nil, queueModle)
|
replyCall := pclient.Go(callServiceName, args, nil, nil, queueModle)
|
||||||
if replyCall.Error != nil {
|
if replyCall.Error != nil {
|
||||||
service.GetLogger().Printf(sysmodule.LEVER_ERROR, "CCluster.Go(%s) fail:%v.", NodeServiceMethod, replyCall.Error)
|
err := fmt.Errorf("CCluster.Go(%s) fail:%v.", NodeServiceMethod, replyCall.Error)
|
||||||
|
if log {
|
||||||
|
service.GetLogger().Printf(sysmodule.LEVER_ERROR, err.Error())
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -455,6 +477,11 @@ func GoQueue(NodeServiceMethod string, args interface{}) error {
|
|||||||
return InstanceClusterMgr().Go(false, NodeServiceMethod, args, true)
|
return InstanceClusterMgr().Go(false, NodeServiceMethod, args, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//在GoQueue的基础上增加是否写日志参数
|
||||||
|
func GoQueueEx(NodeServiceMethod string, args interface{}, log bool) error {
|
||||||
|
return InstanceClusterMgr().goImpl(false, NodeServiceMethod, args, true, log)
|
||||||
|
}
|
||||||
|
|
||||||
func CastGoQueue(NodeServiceMethod string, args interface{}) error {
|
func CastGoQueue(NodeServiceMethod string, args interface{}) error {
|
||||||
return InstanceClusterMgr().Go(true, NodeServiceMethod, args, true)
|
return InstanceClusterMgr().Go(true, NodeServiceMethod, args, true)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user