RPA 9.0 前瞻系列 - 服务器共享数据

1、服务器变量

在 8.0 以前,机器人和服务器之间的主要关系是调度、管理,在 9.0 中,我们增加了服务器对机器人的辅助能力:服务器变量。
顾名思义,这个变量是存储在服务器,而不是存储在机器人里面的,是一个持久化的变量。
首先,这个变量只能在服务端定义,不能在客户端定义和声明

– 你可以定义一个 key-value 来标记这个变量
– 你可以保存密码类型的变量

– 你可以实际用一个变量保存一堆变量

然后变量值写成{'key1': 'value1', 'key2': 'value2'}
– 你可以限定谁能访问这个变量

从 studio、机器人访问这个变量

– 你可以获取这个变量

    – 你也可以设置这个变量 

所有机器人都可以共享一些参数了,是不是很棒?

2、服务器共享任务数据

在现实的 RPA 案例中,经常会出现,早上运行个程序,收取一个邮件,附件是一个 excel,这个 excel 里面包含了所有今天要做的工作,这时候,如果是单机机器人,那很简单,他当场顺序开始处理任务,如果我拥有一个多台服务器的 robot farm,问题复杂化了,第一,我们需要所有机器人能访问到这套数据,第二,某个机器人开始处理一条数据的时候,其他人不再获取这条数据,为了适应这种需求,我们推出了服务器共享任务数据,这套辅助功能的主要特点包括:

支持服务器数据共享,所有机器人均可按权限访问
支持一个空间保存多条数据
支持数据状态,以保证机器人分配和共享时能有条不紊
我们首先关注一下数据的状态,具体如下:
空间中数据一旦加入,会进入 pending 状态,数据有过期时间(deadline),过期后转为 waittimeout;只有 pending、retried 未达上限的数据会被弹出(pop),弹出后则进入 running;任务成功,数据进入 successed;任务失败,原来是 pending 的数据如果有设置重试次数则进入 retried 状态,如果没有重试数据进入 failed,原来是 retried 的数据则会尝试次数 +1,如果尝试次数到达上限,则会进入 failed 状态;如果客户端删除数据,进入 deleted 状态

我们来看看从零开始,如何在服务器上共享任务数据:

首先我们需要在服务器的任务数据模块中,增加任务数据空间

我们是靠空间名字来访问数据的,也是靠空间来设置权限的,比如我们设置了空间task1

和服务器变量不同,空间里的任务数据是不能在服务器端定义的,只能在机器人里面定义

前面举出的例子中,有个机器人每天负责收邮件并读取 excel,读取到的 excel 每条数据作为一条,放到到空间task1里面,这个机器人的任务就完成了。
注意一下,新增数据的级别有Normal, High, Low的。优先级高的数据,会被优先处理。
新加入的数据,处于pending状态。

正常对数据的使用是 POP 数据

数据一旦被 POP,就由pending转为running。
当然,你也可以直接改变数据状态,比如标记为 running 失败,这样其他机器人会重新得到这条数据并进行处理。

我们根据任务数据共享情况,假设了一套常见流程,也支持底层接口,直接利用这些状态访问和使用你的数据。

在服务器上,你可以从空间管理或者搜索引擎中,查看现有数据的情况

了解我们产品的同学知道,我们通过这个可以很方便的制作出各种可视化报表以及各种 dashboard

猜你喜欢

转载自blog.51cto.com/14253212/2381516