创建任务

# 创建任务 任务编辑页面的html文件编写好以后,上传到服务器里。 清理浏览器缓存,在后台创建脚本任务,就可以看到刚编写的html内容了。 ![image.png](https://cos.easydoc.net/52287695/files/lgqj6wre.png) 这里我在form表单里,编写了3个脚本运行参数,供你参考。 点击下一步,进入到设备树。 选择单个或多个设备,继续下一步 ![image.png](https://cos.easydoc.net/52287695/files/lgqj8ib0.png) 设置脚本执行参数,创建任务 ![image.png](https://cos.easydoc.net/52287695/files/lgqj92vp.png) 创建完成后,列表显示简要的任务信息 ![image.png](https://cos.easydoc.net/52287695/files/lgqj9tn4.png) # 查看任务 任务分为总任务和子任务。 刚才我们创建的那条任务,任务ID 是 1 这就是一条总任务。 **总任务**显示在任务总表,记录在Mysql表里 ![image.png](https://cos.easydoc.net/52287695/files/lgqjbazv.png) 因为选择设备的时候,勾选了两台设备,所以每台设备,都创建了一条任务。 这条任务,就是子任务。 **子任务**显示在任务详表,记录在Redis表里 ![image.png](https://cos.easydoc.net/52287695/files/lgqjhi95.png) 任务创建好以后,被控端的轮询就可以从任务详表里取到这条新创建的任务。 如果你一次性创建了多个排队任务,那么被控端会按照创建的先后顺序,来获取任务并依次执行。 如果你创建了定时任务,那么只有时间到达指定的时间点,被控端才能取到这条任务。 如果到达定时任务的指定时间点,被控端是正在执行脚本任务的状态,那么定时任务会被挂起,直到当前脚本执行完毕,才会被设备获取到并开始执行。 # 查看子任务Redis数据 在宝塔的redis数据管理工具里,可以看到子任务的完整参数 [Redis数据库表](doc:tqQO2Xca) ![image.png](https://cos.easydoc.net/52287695/files/lgqk0r2k.png) 任务json信息如下 ```json { "task_id": "1", "module_id": "1", "module_name": "yanghao", "module_group_id": "1", "module_param": { "watch_num": "3", "watch_min": "3", "watch_max": "5", "layuiTreeChe“ck_1": "1", "layuiTreeCheck_9B2EDAE5239A1B55": "9B2EDAE5239A1B55", "layuiTreeCheck_CE36CD237F859F17": "CE36CD237F859F17" }, "custom_param": { "is_limited_time": "0", "limit_time": "600", "wait_time_min": "1", "wait_time_max": "3", "delay_min": "1", "delay_max": "3" }, "module_url": "http://new-cloud.feiyunjs.cn/components/Module/aweme/yanghao.js", "mode": "1", "start_time": "", "task_source": 0, "state": "1", "imei": "CE36CD237F859F17", "device_number": "9F17", "callback_data": "", "remarks": "", "add_time": "2023-04-21 20:33:42", "update_time": "", "replenish_num": 0, "complete_num": 0 } ``` 其中的module_param,就是脚本运行参数。 这些参数,是在前面我们编写的html的第一个form表单里得到的。 custom_param是任务相关的参数,也是从前面html的分步表单里的最后一个form里得到的。 >w 如果你的宝塔里没有安装redis数据管理工具,可以在数据库里查看redis数据,或者使用远程redis数据库管理工具来查看。 ![image.png](https://cos.easydoc.net/52287695/files/lgqk8l64.png) # 查看任务参数 为了方便开发脚本,在数据——全部任务表里,提供了一个复制脚本参数的功能。 找到刚才创建的任务,一键复制脚本任务参数。 ![image.png](https://cos.easydoc.net/52287695/files/lgqjoppk.png) 复制出来的json内容如下 ```json {"watch_num":"3","watch_min":"3","watch_max":"5","layuiTreeCheck_1":"1","layuiTreeCheck_9B2EDAE5239A1B55":"9B2EDAE5239A1B55","layuiTreeCheck_CE36CD237F859F17":"CE36CD237F859F17"} ``` 为了方便查看,我们找一个在线json格式化工具,来对脚本参数进行格式化操作。 [宝塔JSON格式化工具](https://www.bt.cn/tools/json.html) 格式化结果如下 其中前3个,就是我们在执行js脚本的时候,要运用的参数了。 后面几条是设备树生成的数据,是无用的。 ![image.png](https://cos.easydoc.net/52287695/files/lgqjrlml.png) 被控端获取子任务的时候,会取到任务对应的脚本运行参数。