自动化脚本中设备太多时如何快速按计划来启动设备?

📅 2026/7/27 12:24:40 👁️ 阅读次数 📝 编程学习
自动化脚本中设备太多时如何快速按计划来启动设备?

一、问题背景

在使用自动化脚本的过程中,当设备数量达到几百台甚至几千台时,如何高效地按计划启动所有设备成为一个现实挑战。冰狐智能辅助平台提供了网页端的设备管理功能,支持批量选择设备执行脚本,但当设备数量庞大、需要分类型或按特定计划启动时,单纯依靠前端手动操作显然不切实际。

冰狐智能辅助的OpenAPI为开发者提供了设备管理、脚本调度等后端能力,支持标准HTTP接口和JSON返回,可以无侵入地对接自有后端服务。本文介绍如何利用平台内置的微服务体系,实现大规模设备的批量按计划启动。

二、核心思路:微服务调度

冰狐智能辅助平台的核心调度能力来自其微服务架构。与仅依赖前端JS脚本不同,微服务运行在服务端,具备调用平台全部API的能力,天然适合承担设备调度的中枢角色。

整个方案由三个层次构成:

  1. 业务处理服务:作为用户交互的入口,接收调度参数

  2. 微服务脚本:承载核心调度逻辑,调用设备启动API

  3. 移动端脚本:在每台设备上执行具体的业务任务

三、具体实现步骤

以下以一个典型需求为例:100台手机按顺序启动任务,移动端脚本名为test,每次启动之间加入随机间隔,并将自定义参数url传递给每个设备。

3.1 创建业务处理服务

在网页端进入「微服务」→「业务处理」,点击右上角的「+服务」按钮,新建一个名为demo的业务处理服务。

随后点击「参数」按钮,添加三个参数:

参数名类型说明
url字符串透传给移动端脚本的自定义参数
minInterval整型两次启动之间的最小间隔(毫秒)
maxInterval整型两次启动之间的最大间隔(毫秒)

将间隔时间设计为可配置参数,让用户可以根据实际场景灵活调整调度节奏。

3.2 创建微服务脚本

在网页端进入「微服务」→「微服务脚本」,点击右上角的「+脚本」按钮,新建一个名为demo的微服务脚本。

然后在业务处理服务的编辑界面中,将刚创建的demo脚本关联为该服务的执行脚本。

3.3 编写微服务脚本核心逻辑

微服务脚本的核心功能是:接收参数,遍历设备列表,对每台在线设备调用启动接口。

// url、minInterval、maxInterval为业务处理服务透传过来的参数 function main(url, minInterval, maxInterval) { var devices = deviceList(); for (var device of devices) { // 仅调度在线手机 if (device.onlineState == 1) { // 在手机上执行移动端名为"test"的脚本,url参数透传给移动端脚本 scriptExe('test', device.uuid, [url], true); // 在minInterval和maxInterval之间随机延时 sleep(Math.random() * (maxInterval - minInterval) + minInterval); } } }

关键API说明

  • deviceList():获取当前账号下的所有设备列表

  • device.onlineState:设备工作状态,1表示在线

  • scriptExe(scriptName, uuid, params, wait):在指定设备上执行脚本

  • sleep(ms):暂停执行指定的毫秒数

scriptExe函数的params参数会以数组形式透传给移动端脚本的main函数。

3.4 移动端脚本

移动端脚本接收微服务传递的参数并执行业务逻辑:

function main(url) { console.log('url:' + url); // 在此处编写具体的业务任务代码 }

3.5 执行调度

在网页端进入「微服务」→「业务处理」,选择刚创建的demo服务,点击「执行」按钮,填写urlminIntervalmaxInterval三个参数后执行即可。

四、方案优势与扩展

4.1 解决的核心问题

上述方案通过微服务将设备调度逻辑从人工操作中解放出来。无论设备是100台还是1000台,只需一次执行即可完成全部设备的按序启动,且启动间隔可控、参数可定制。

4.2 扩展能力

基于这套架构,还可以进一步扩展:

设备筛选:在遍历设备时增加过滤条件,仅启动特定类型或特定标签的设备。设备的extraData字段支持存放开发者自定义数据,可用于设备分类管理。

分页处理:当设备数量极大时,可通过deviceList的分页参数startIndexitemCount分批获取设备列表,避免单次请求数据量过大。

状态监控:通过getDeviceStateAPI实时获取设备工作状态,在脚本执行过程中动态调整调度策略。

定时触发:结合冰狐的Cron表达式调度能力,将微服务执行与定时任务结合,实现设备在指定时间自动批量启动。

4.3 注意事项

  • 启动设备时,若scriptName参数不为空则执行指定脚本,否则依次尝试设备默认脚本和用户默认脚本

  • deviceList返回的设备包含onlineState(在线状态)和workState(繁忙状态),调度时应优先选择在线且空闲的设备

  • 两次启动之间加入随机间隔可以避免所有设备同时发起请求造成的服务压力

五、总结

冰狐智能辅助平台通过「业务处理服务 + 微服务脚本」的架构,为大规模设备按计划启动提供了完整的解决方案。开发者无需自行搭建复杂的调度系统,仅需利用平台内置的微服务能力和OpenAPI,即可实现设备批量调度、参数透传、间隔控制等完整流程。

这一方案的核心价值在于将设备调度逻辑代码化、可配置化,使得运维人员可以从重复的手工操作中解放出来,专注于业务脚本本身的开发与优化。