想起老带新,这不就是我以前接触过的分销业务 订单系统生产 mq 过去,分润系统消费 mq,分润结果返回给订单系统;因为分润逻辑可能会经常改动,所以分润这一块独立出来比较好
手动编排试过了,其他人说难排 (其实是懒)
第 3 点,我理解的是生成 [4, 2, 4, 3, 1]
谢谢大佬的建议
不要为了 KPI 而 KPI,要想清楚,接口平台到底能带来什么收益
是啊,没办法了,解决痛点就好了
这个之前问过开发,开发说公司内部系统对接大多走的是 Dubbo 协议,这是公司的开发规范
我这里捕获的是全局报错,不是那种手动抛出异常的。
这段代码是手动捕获异常的处理
# 通用异常处理
class NormalException(Exception):
def __init__(self, errorMsg: str,body:dict):
self.errorMsg = str(errorMsg)
self.body = str(body, encoding = "utf-8")
# 手动捕获异常处理
@user1r(NormalException)
async def unicorn_exception_handler(request: Request, exc: NormalException):
log_msg = f"手动捕获异常成功====请求路径:{request.url.path}\n请求参数:{exc.body}\n错误信息:{exc.errorMsg}"
mylog.info(log_msg)
return JSONResponse(
status_code=status.HTTP_400_BAD_REQUEST,
content={
"responseCode": Status.SYSTEM_EXCEPTION.get_code(),
"responseMsg":Status.SYSTEM_EXCEPTION.get_msg(),
"errorMsg" : exc.errorMsg
},
)
这时候就无法捕获异常,直接 Internal Server Error,没有进来这个方法。
class PermissionException(Exception):
def __init__(self, body):
self.body = body
class DemoException(PermissionException):
def __init__(self):
Exception.__init__(self,self.body)
def register_exception(app: FastAPI):
@user1r(DemoException)
async def all_exception_handler(request: Request, exc: DemoException):
# #query参数:
# query_data = request.query_params
# print(query_data)
print(exc.body)
log_msg = f"捕获到系统错误:请求路径:{request.url.path}\n错误信息:{traceback.format_exc()}"
mylog.error(log_msg)
return JSONResponse(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
content=jsonable_encoder({
"responseCode": Status.FAIL.get_code(),
"responseMsg": Status.FAIL.get_msg()
},
))
用了你的方法还是不行,求解。。。