在实现app自动化过程中,有时候我们需要将多个手机中的任务,按照某种规则进行调度,这时仅仅使用移动端的脚本就无法完成了,需要配合使用微服务来完成。下面就举个例子来实际说明如何使用。
假设我们有100台手机做任务,具体有如下需求:
上面的需求其实非常简单,就是要求按一定规则顺序执行所有手机中的默认任务。
综上分析,微服务具有三个参数:url,minInterval、maxInterval。
根据上述分析,我们可以先建立「业务处理」服务,然后再编写对应的「微服务脚本」来实现具体调度功能。




- // 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);
- }
- }
- }

- // url参数的值,是上面的微服务脚本通过调用scriptExe函数透传过来的。
- function main(url) {
- console.log('url:' + url);
- }
本文通过一个例子详细介绍了如何使用微服务实现多设备自动调度,各位同学可以根据自己的实际需求修改具体调度策略。