使用微服务实现多设备自动调度

news2025/2/24 4:42:06

在实现app自动化过程中,有时候我们需要将多个手机中的任务,按照某种规则进行调度,这时仅仅使用移动端的脚本就无法完成了,需要配合使用微服务来完成。下面就举个例子来实际说明如何使用。

需求

假设我们有100台手机做任务,具体有如下需求:

  1. 按顺序来启动每台手机任务,移动端脚本名为:test。
  2. 两次启动之间需要加一个随机的间隔时间。
  3. 将自定义的参数传给每个启动的手机任务,自定义参数 「参数名:url,类型:string」。

分析需求

上面的需求其实非常简单,就是要求按一定规则顺序执行所有手机中的默认任务。

  1. 以上需求本质上是做100台手机的调度功能,仅依靠前端的js脚本是无法实现的,所以必须使用微服务。
  2. 由于需要输入参数url,所以我们可以使用「业务处理」服务来实现,添加一个url参数。
  3. 两手机任务启动间隔时间也可以做成参数,让用户自己选择间隔的范围。所以可以添加为minInterval和maxInterval两个参数分别表示最小和最大间隔时间(毫秒)。

综上分析,微服务具有三个参数:url,minInterval、maxInterval。

实现

根据上述分析,我们可以先建立「业务处理」服务,然后再编写对应的「微服务脚本」来实现具体调度功能。

  1. 新建业务处理服务。在冰狐智能辅助网页端选择【微服务】/【业务处理】,点击右上角的"+服务"按钮,新建一个名为demo的业务处理服务。
  2. 添加参数。点击"参数"按钮,添加三个参数,分别为:【名称:url,id:url,类型:字符串】;【名称:最小间隔,id:minInterval,类型:整型】;【名称:最大间隔,id:maxInterval,类型:整型】。
  3. 新建微服务脚本。在冰狐智能辅助网页端选择【微服务】/【微服务脚本】,点击右上角的"+脚本"按钮,新建一个名为demo的脚本。
  4. 关联脚本和业务处理服务。在冰狐智能辅助网页端选择【微服务】/【业务处理】,点击"编辑"按钮,选择刚创建的"demo"为脚本。
  5. 实现微服务脚本。脚本的核心功能为:接收参数,根据参数和调度要求来启动每个手机任务。
    // url、minInterval,maxInterval为业务处理服务透传过来的参数
    function main(url, minInterval, maxInterval) {
        var devices = deviceList();
        for (var device of devices) {
            // 仅调度在线手机
            if (device.onlineState == 1) {
                // 在手机上执行移动端名为"test"的脚本,这里的url参数会直接透传给移动端脚本的main函数参数。
                scriptExe('test', device.uuid, [url], true);
    
                // 在minInterval和maxInterval之间随机延时一段时间
                sleep(Math.random() * (maxInterval - minInterval) + minInterval);
            }
        }
    }                        
  6. 执行服务。在冰狐智能辅助网页端【微服务】/【业务处理】,选择刚创建的"demo"服务,然后点击"执行"按钮,填充相关参数,点击"执行"即可执行代码。
  7. 如果您还没有手机端脚本(移动端脚本),可以参考下面的代码:
    // url参数的值,是上面的微服务脚本通过调用scriptExe函数透传过来的。
    function main(url) {
        console.log('url:' + url);
    }          

总结

本文通过一个例子详细介绍了如何使用微服务实现多设备自动调度,各位同学可以根据自己的实际需求修改具体调度策略。

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2757.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计(附源码)python疫情下的学生出入管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

云IDE产品介绍

前言 CSDN开发云官网发布了最新产品【云IDE】产品!【云IDE】将提供一键秒级构建云开发环境,是专为开发者打造的一款低代码开发产品,云端预制了常见的开发环境,无需下载安装,一键创建项目,灵活配置代码仓和云…

【数据库05】玩转SQL的高阶特性

前 言 🍉 作者简介:半旧518,长跑型选手,立志坚持写10年博客,专注于java后端 ☕专栏简介:相当硬核,黑皮书《数据库系统概念》读书笔记,讲解: 1.数据库系统的基本概念(数据…

22.10.31补卡 22CCPC桂林C题

Problem - C - Codeforces 这题题解是请教了学长之后才做出来的, 若是想看题解请看http://t.csdn.cn/unAyg 本篇文章只作为做题记录 写了一天半...感觉自己是不太适合写区域赛的题了, 还是多学学算法和数论好了 ---------------------------------------------------------…

学习笔记-NTLM中继

NTLM中继 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. NTLM hash 分为 NTLMv1 NTLMv2 NTLMv2 session 三种,NTLMv2 的强度比 NTLMv1 强了不少 ,我们在实战中,如果获得的是 …

【Android Studio学习】第一篇、制作一个拥有登录和注册功能的简易APP

目录 第一部分、前言 1、目标效果 2、准备知识 第二部分、详细步骤 1、新建Empty工程 ​2、添加资源文件 3、搭建注册界面 4、搭建登录界面 5、编写注册界面和登录界面的代码 6、设置APP初始界面 7、连接手机,编译工程 第三部分、总结 1、参考资料 2、…

基于反馈技术的宽带低噪声放大器的设计

低噪声放大器是通信、雷达、电子对抗及遥控遥测系统中的必不可少的重要部件,它位于射频接收系统的前端,主要功能是对天线接收到的微弱射频信号进行线性放大,同时抑制各种噪声干扰,提高系统的灵敏度。特别是随着通信、电子对抗、微…

基于Java+Vue+uniapp微信小程序实现餐厅校园订餐平台

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取联系🍅精彩专栏推荐订阅👇&#x1f…

springboot二手车交易系统

功能介绍 目 录 第一章 绪论 5 1.1研究背景 5 1.2平台现状分析 5 1.3系统实现的功能 5 1.4二手车交易管理信息系统的特点 6 1.5本文的组织结构 6 第二章开发技术与环境配置 7 2.1 SpringBoot框架 7 2.2Java语言简介 7 2.3 MySQL环境配置 8 2.4 MyEclipse环境配置 8 2.5 mysql数…

黑马程序员C++类和对象【5】 —— 运算符重载(蓝桥杯必备知识)万字超详解

目录 🤡加号运算符重载 🤡左移运算符重载 🤡递增运算符重载 🤡递减运算符重载 🤡赋值运算符重载 🤡关系运算符重载 🤡函数调用运算符重载(仿函数) 🤡加…

牛客竞赛每日俩题 - 动态规划1

目录 DP入门(存储之前状态以简化) DP解决最短路问题 DP入门(存储之前状态以简化) 拆分词句_牛客题霸_牛客网 思路: 方法:动态规划 状态: 子状态:前1,2,3&a…

蓝桥杯国奖一等奖,经历回顾

文章目录1. 自我介绍2. 参赛经历3. 我的一些经验4. 结语本篇内容为一位粉丝的投稿内容,希望对大家有所帮助。 1. 自我介绍 我是来自一所普通双非的大三学生,以下为主要成绩: 2022蓝桥杯Java组,全国一等奖2022高教社杯全国大学生数学建模竞赛…

windows一键部署java项目

前言 前段时间老大看我很闲...然后给我下达了一项很重要的任务:windows一键部署,需要把服务(jdk、tomcat、mysql、jar包、前端压缩包)打成一个exe应用程序,点击安装会启动所有服务,打开浏览器http://localh…

Java 程序设计报告[对接java的迭代器接口]

1:程序的功能设计与分析 -:将实现deque与stack -:采用继承与内部类来提高程序的拓展性、安全性、简洁性 -:对接到java.util.iterator中的iterator接口与iterable接口 2:程序的特点分析 -:观察到队列、栈都…

二战华为成功上岸,准备了小半年,要个27k应该也算不上很高吧~

先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,华为的游戏专场又是最早开始的,就投递了&#xf…

二、肺癌检测-LUNA数据集下载和介绍

LUNA数据集是一个肺部肿瘤CT扫描结果的数据集,可用于作为肺癌检测的模型训练。 一、数据集下载 step1:登陆LUNA16官网,链接为:Home - Grand Challenge step2:点击网站左侧【download】,进入下载页面。 s…

图形学-着色频率与渲染管线

1.着色频率 根据不同的着色方式,有不同的着色频率,主要的着色频率分为三种——面着色,顶点着色和像素着色。主要的不同之处在于法线的选择方式不同。 面着色 Flat Shading指的是计算每一个三角形平面的法线后对一个平面整体进行着色&#x…

Redo日志和Undo日志

Redo日志和Undo日志Redo日志和Undo日志1 Redo日志和Undo日志概述2 Redo日志2.1 为什么需要Redo日志2.2 Redo日志的好处、特点3 Undo日志3.1 如何理解Undo日志3.2 Undo日志的作用Redo日志和Undo日志 1 Redo日志和Undo日志概述 事务有4种特性:原子性、一致性、隔离性…

C++类和对象(中)【万字详解】

这一篇就是C中的类和对象的核心内容了. 目录 类的6个默认成员函数 构造函数 概念 特性 析构函数 概念 特性 拷贝构造函数 概念 特性 赋值运算符重载 运算符重载 赋值运算符重载 const成员 const修饰的类成员函数 8.取地址及const取地址操作符重载 类的6个默认成员函数 如果一个…

洛谷千题详解 | P1004 [NOIP2000 提高组] 方格取数【C++、Java、Pascal语言】

博主主页:Yu仙笙 专栏地址:洛谷千题详解 目录 题目描述 输入格式 输出格式 输入输出样例 解析: C源码: Java源码: Pascal源码: ---------------------------------------------------------------------…