30-api-task.rst
9.14 KB
任务管理接口
Note
- 根据运维实现方式,现在页面上是添加一个大任务(即逻辑任务,用来在UI上归聚显示,并不会在分析服务中执行, 下面会统一简称"大任务"),后台会按多个视频源分解为多个子任务(实际上在分析服务器上执行的任务),一个子任 务对应一个视频源,这就带来了大任务与子任务的状态怎么对应的问题,比如子任务4个,3个运行,一个停止,大任 务运行状态该怎么显示。
- 标准返回结构体格式:
{ "ecode": 200, "enote": "OK" }
任务管理
添加任务
URL
: /tasksVerb
: POSTHeader
: Authorization: {atoken},Accept-Language: {lang_code},Content-Type:application/jsonRequest Body
:
{ "task_name": "", # 必填,任务名称 "algo_type": "0", # 必填,任务算法的类型,'0':交通, '1':客流, '2':安防, '3':违停,'4':人脸 "run_dt": "2018-12-03 10:27:30.999", # 必填,任务运行日期时间 "play_url": "rtsp://192.168.9.155:8554//opt/data/vedio/1543548943071.264" # 必填,网络串流 "mtasks":[ #任务详细配置参数 { "mtask_unid": "xxxx", # mtask任务id "name": "xxxx", # mtask任务名称 "type": 1, # mtask任务类型,0 轮询任务; 1 时间段任务; 2 批量任务,非球机只支持0 "time_interval": 5, # 轮询任务的时间间隔,时间单位是分钟 "start_time": "00:00:00", # mtask开始时间 "end_time": "22:01:20", # mtask结束时间 "progress": 30, # 输出字段,进度 "scenes": [ { "scene_unid": "xxxx", # 场景ID "name": "xxxx", # 场景名称 "preset": 1, # 预置位,用于球机 "callibration": { # 标定参数,xml格式字符串 "calibration": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>" }, "rois": [ # roi参数,xml格式字符串 { "roi": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>" }, { "roi": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>" } ], "config": { # 算法配置参数,xml格式字符串 "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>" }, "basicConfig": { # 算法基础配置参数,xml格式字符串 "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>" }, "link_scenes": [], # 预置位,球机专用 "algo_type": 1, # 必填,必须和大任务一致,算法类型,0 交通; 1 客流; 2 安防;3 违停, 4 人脸。 "algo_args": {}, # 算法基本参数,根据algo_type而不同,参见下文。 "is_record": 1, # 是否录像,不用 "is_active": 1, # 是否有效,不用 "vchan_refid": # 视频通道的唯一id "play_urls": { # 点播地址,不用 "http": "xxxx", "rtsp": "xxxx" }, "is_running": 1, # 任务是否正在运行 "status_reason": "xxxx" # 状态原因 }, ... ] # scenes } ], "store_conf_unid": "xxxx", # 使用的存储配置的unid }
Response
:
标准返回结构体。
任务添加说明
该添加任务的接口在后台并不直接向运维发送派发任务的命令,而是在数据库的tb_task表中新增记录。
-
- source_type==pull_video_stream时:
-
如果存在vchans字段,那么需要在数据库的tb_subtask表中新增记录。
-
- source_type==pssull_pic_files或push_pic_files时:
-
根据node_count创建子任务个数。 如果source_type==pull_pic_files,则还要填写pull_source_url字段,并存储到子任务表中。
及按每个视频源一个小任务进行拆分后的各个子任务,因为小任务还要进行ROI配置,标定配置,参数配置才能派发。 当配置完成后,点击``配置完成``按钮保存子任务配置信息,最后对大任务执行“开始”操作才真正的派发各个小任务到运维服务器。
Note
- 任务算法类型 ('0': 交通; '1': 客流; '2': 安防,'3': 违停) 做为字典项保存到字典服务。
Error
- 原型上任务类型是按上传的算法的名称来算的,但是实际上的任务的算法类型是写死的,如上面所列。
列出任务
URL: /tasks
Verb: GET
Header: Authorization: {atoken},Accept-Language: {lang_code},Content-Type:application/json
参数:
{ "offset": 0, "limit": 10 }
Response:
按照create_dt降序排列。
{ "total_num": 4, "offset": 0, "list_size": 4, "list_data": [ { "task_id": "", "task_name": "", # 必填,任务名称 "algo_type": "0", # 必填,任务算法的类型,'0':交通, '1':客流, '2':安防, '3':违停,'4':人脸 "run_dt": "2018-12-03 10:27:30.999", # 必填,任务运行日期时间 "play_url": "rtsp://192.168.9.155:8554//opt/data/vedio/1543548943071.264" # 必填,网络串流 "mtasks":[ #任务详细配置参数 { "mtask_unid": "xxxx", # mtask任务id "name": "xxxx", # mtask任务名称 "type": 1, # mtask任务类型,0 轮询任务; 1 时间段任务; 2 批量任务,非球机只支持0 "time_interval": 5, # 轮询任务的时间间隔,时间单位是分钟 "start_time": "00:00:00", # mtask开始时间 "end_time": "22:01:20", # mtask结束时间 "progress": 30, # 输出字段,进度 "scenes": [ { "scene_unid": "xxxx", # 场景ID "name": "xxxx", # 场景名称 "preset": 1, # 预置位,用于球机 "callibration": { # 标定参数,xml格式字符串 "calibration": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>" }, "rois": [ # roi参数,xml格式字符串 { "roi": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>" }, { "roi": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>" } ], "config": { # 算法配置参数,xml格式字符串 "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>" }, "basicConfig": { # 算法基础配置参数,xml格式字符串 "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>" }, "link_scenes": [], # 预置位,球机专用 "algo_type": 1, # 必填,必须和大任务一致,算法类型,0 交通; 1 客流; 2 安防;3 违停, 4 人脸。 "algo_args": {}, # 算法基本参数,根据algo_type而不同,参见下文。 "is_record": 1, # 是否录像,不用 "is_active": 1, # 是否有效,不用 "vchan_refid": # 视频通道的唯一id "play_urls": { # 点播地址,不用 "http": "xxxx", "rtsp": "xxxx" }, "is_running": 1, # 任务是否正在运行 "status_reason": "xxxx" # 状态原因 }, ... ] # scenes } ], "store_conf_unid": "xxxx", # 使用的存储配置的unid }, ... ] }