platform_monitor 日志监控装饰器
该装饰器作用有以下几点:
- 检查参数是否合法,可以获取平台存储的历史参数,并更新到相关参数中
- 对输出做了必要的处理,可以将历史结果或接口输出转换成前端需要的格式
- 将执行结果记录到平台,如果异常同时记录错误信息
- 大数据量的表格结果做了优化,避免存储太多数据对请求和数据库造成压力
需要注意的是:
platform_monitor装饰器必须位于其他装饰器之下(更贴近函数本身)platform_monitor在修饰任务类函数时,必须指定为TASK,装饰业务接口时,可以指定API,也可以不指定
下面是代码示意:
- 任务接口
from celery import shared_task, current_task
from hippo.web import TaskParam
from hippo.log_tracking import platform_monitor, TASK
@shared_task(ignore_result=False)
@platform_monitor(TASK) # note here, 必须位于其他装饰器之前,参数必须指定TASK
def run_task(**kwargs) -> dict:
pass
这里有几点需要注意:
- 业务接口
from hippo.log_tracking import platform_monitor, API
@bp.route("/submit", methods=['POST'])
@platform_monitor # note here, 可以不带括号,可以带括号不指定参数,可以指定API参数,这几种方式作用相同
#@platform_monitor()
#@platform_monitor(API)
def submit():
pass
# submit 接口,是特殊的业务接口,其他业务接口与 submit 接口使用 platform_monitor 装饰器的方式相同