DataAnalysisSubmit 类
主要有两种使用场景:
- 常规APP提交接口代码示例:
from app.views.ms_jk import bp
from hippo.web import DataAnalysisSubmit
from hippo.log_tracking import platform_monitor
@bp.route("/submit", methods=['POST'])
@platform_monitor()
def submit():
das = DataAnalysisSubmit()
return das.submit()
- 任务APP提交接口代码示例:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from app.views.ms_jk import bp
from app.task.a_demo_task import a_demo_task # change here
from hippo.web import DataAnalysisSubmit
from hippo.log_tracking import platform_monitor
@bp.route("/submit", methods=['POST'])
@platform_monitor()
def submit():
das = DataAnalysisSubmit()
return das.submit_task(a_demo_task) # change here
DataAnalysisSubmit对界面的提交按钮进行了控制,该类实例化必须在/ms_jk/submit路由方法里,
目前分为任务类型APP的提交(调用.submit())和常规任务APP的提交(调用.submit_task(a_demo_task)),
任务类型APP提交需要提供给一个 celery.share_task装饰的函数,函数参数要求为**kwargs,
即该函数形如下面示意:
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) # note here,必须经过celery任务装饰器处理
@platform_monitor(TASK)
def generate_quote_task(**kwargs) -> dict: # note here,参数必须是**kwargs
pass
DataAnalysisSubmit类封装了必要的处理,并存储了界面参数,后续左侧参数使用平台存储的数据(不能修改),该数据用于历史数据回填和供业务接口内部使用