client.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:pymqant 作者: liangdas 项目源码 文件源码
def Call(self,_func, *params):
        if self.stoping:
            return None,"Process ready to stop!"
        ArgsType=[]
        index=0
        args=[]
        for arg in params:
            if arg==None:
                return None,"Parameter cannot be None!"
            elif isinstance(arg,(str,unicode)):
                ArgsType.append(public.STRING)
                args.append(arg)
            elif isinstance(arg,long):
                ArgsType.append(public.LONG)
                args.append(arg)
            elif isinstance(arg,float):
                ArgsType.append(public.DOUBLE)
                args.append(arg)
            elif isinstance(arg,bool):
                ArgsType.append(public.BOOL)
                args.append(arg)
            elif isinstance(arg,int):
                #int?????bool ??,???????????int
                ArgsType.append(public.INT)
                args.append(arg)
            elif isinstance(arg,Bytes):
                ArgsType.append(public.BYTES)
                #?base64
                args.append(arg.b64encode())
            elif isinstance(arg,dict):
                ArgsType.append(public.MAP)
                args.append(arg)
            else:
                return None,"args[%d] [%s] Types not allowed"%(index,type(arg))
            index+=1

        callInfo=CallInfo(_func,args,ArgsType,timeout=5)
        callback=Queue()
        if self.local_client!=None:
            err=self.local_client.Call(callInfo,callback)
        elif self.remote_client!=None:
            err=self.remote_client.Call(callInfo,callback)

        else:
            return None, "rpc service connection failed"

        if err!=None:
            return None,err
        try:
            resultInfo=callback.get()
            return resultInfo.Result, resultInfo.Error
        except Empty:
            return None,"Quitting time!"
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号