task函数任务参数 TaskParam
在调用DataAnalysisSubmit类的submit_task方法时,需要传入一个被celery.shared_task修饰的函数,
在该函数内部,可以通过透传的参数实例化 TaskParam 类。
TaskParam 类的使用场景见下面代码示意:
# !/usr/bin/env python
# -*- coding:utf-8 -*
from celery import shared_task
from hippo.web import TaskParam # note here, 该类位于 hippo.web 下
from hippo.log_tracking import platform_monitor, TASK
@shared_task(ignore_result=False)
@platform_monitor(TASK)
def generate_quote_task(**kwargs) -> dict:
task_param = TaskParam(**kwargs) # note here, 通过透传的参数实例化该类
pass
一些常用的属性及方法说明
task_param.inputs_json类的属性: 保存了前端界面配置的所有左侧参数task_param.STATUS类的静态常量: 该常量定义了任务的状态值,目前包含init,submitted,running,failed,aborted,succeeded状态值task_param.update_status(task_param.STATUS.succeeded)类的方法: 与平台通信,更新该任务的状态,一般根据情况更新为succeeded或failed
注: 1.
task_param只能通过inputs_json属性获取左侧参数。右侧配置参数无法获取,这是保证任务只被执行一次,且不能修改参数 1.update_status的参数推荐使用STATUS常量的属性,避免写字符串错误导致异常,eg:task_param.STATUS.succeeded
继承自父类的相关属性和方法说明
路径依赖相关
task_param.workflow_root类的属性(需要子类实现): 该路径由DataAnalysisSubmit.submit_task(**kwargs)提交时有框架注入该参数值;保存了本次请求工作空间目录所在的位置,一般不使用该属性处理路径关系task_param.path_uuid类的属性: 生成路径所需的唯一uuid,确定不同请求对应不同的目录空间;该属性开发人员一般不使用task_param.input类的属性: 工作空间目录下的input目录的路径, 一般规划用来放置当前请求(用户上传)的输入文件,但由于业务原因,该功能暂时废弃task_param.path_for_input()类的方法: 返回工作空间目录下的input目录的路径,等价于record.input(功能废弃)task_param.output类的属性: 工作空间目录下的output目录的路径, 用户点击界面的下载按钮会打包下载该目录下的所有文件task_param.path_for_output()类的方法: 返回工作空间目录下的output目录的路径,等价于record.outputtask_param.path_for_dir('log')类的方法: 返回工作空间目录下指定名称路径,该名称的目录方法内部会创建
拼接命令相关
与task_param.cmd_cache相关的方法有:
1. task_param.add()
1. task_param.clean_cache()
1. task_param.run_scripts()
相关说明详见CmdCache.