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

在实现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);
    }          

总结

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

 

 

 

 

 

 

 

 

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值