影刀RPA进阶教程:机器人运营看板——任务成功率与耗时统计

流程跑起来只是第一步,跑得好不好你根本不知道。我带的一个淘宝店铺采集项目,十几个计划任务每天夜间执行,直到运营说数据三天没更新了,我才发现有个任务已经连续失败三天——没人盯着,谁也不知道。影刀RPA的控制台能看到单次执行情况,但没有汇总、没有趋势,更没法直接发给老板。

这篇就讲我怎么用影刀RPA搭一个轻量的机器人运营看板:任务成功率、平均耗时、异常明细,每天自动统计完推到飞书群。不需要写多少代码,核心是把日志和数据表格用到位。

看板要统计哪些指标:先定口径再动手

指标不是越多越好,我实际在用的就四个,够覆盖90%的运营问题:

在这里插入图片描述

  • 任务成功率:当天成功的任务数 ÷ 总任务数,老板唯一关心的数
  • 平均耗时:每个任务耗时是否异常增长,是流程退化的前兆
  • 异常明细:哪个任务、哪个子流程、什么报错,用于安排修复
  • 机器人状态:运行中、空闲、离线的数量分布,离线了要马上知道

口径要先和看的人对齐。比如"成功"的定义是整条主流程跑完且数据行数达标,光没报错不算——我吃过亏:某次任务没报错但采集了0条数据,成功率100%,数据是空的。

地基:用打印日志把每次运行变成结构化数据

统计的前提是每条任务运行时都留下可解析的记录。我在每个流程的固定节点埋【打印日志】指令:

  • 主流程开始:打印任务名、本次参数
  • 每个子流程进出:打印子流程名,方便定位卡在哪一步
  • 主流程结束:打印总条数、结果状态

【打印日志】的日志类型分调试、信息、警告、错误四种,默认是信息。我的习惯:常规节点用信息,可自动恢复的问题(比如重试成功)用警告,进Catch块的用错误。这样事后筛选日志时,错误类型一眼就捞出来。
在这里插入图片描述

关键是格式要固定。我统一用"字段=值"的格式打印,比如 task_name=淘宝价格采集 status=success rows=352 duration=423,后面统计脚本直接按空格和等号切分,比自由文本好用十倍。

耗时怎么算:获取当前日期时间配合获取时间间隔

影刀RPA的日期时间指令集里有现成的【获取当前日期时间】和【获取时间间隔】。耗时的标准做法是主流程首尾各取一次时间,再用【获取时间间隔】算差值,时间间隔单位选"秒"。

把耗时和结果写进数据表格,用【写入内容至数据表格】指令,写入方式选"追加一行",整行数据存成一维列表:

# 每次任务结束后写入一条运行记录
# 输入:run_date(字符串,日期)、task_name(字符串,任务名)、
#       duration(数字,耗时秒)、status(字符串,success/fail)、
#       rows(数字,采集条数)、err_msg(字符串,失败原因,成功时为空)
[run_date, task_name, duration, status, rows, err_msg]

数据表格里这张运行记录表就是看板的数据源。数据表格理论上限是20万行,日常统计绰绰有余;跑了几个月记得归档清一次,别等卡了再处理。

统计脚本本身用影刀RPA的Python节点写,输入是数据表格内容,输出是汇总字典:

在这里插入图片描述

# 输入:records(二维列表,来自数据表格,列为[日期,任务名,耗时,状态,条数,错误])
# 输出:summary(字典,含成功率、平均耗时、异常明细)
summary = {}
tasks = [r for r in records if r[1]]
ok = [r for r in tasks if r[3] == "success"]
summary["success_rate"] = round(len(ok) / len(tasks) * 100, 1)
summary["avg_duration"] = round(sum(r[2] for r in tasks) / len(tasks), 1)
summary["fail_list"] = [{"task": r[1], "err": r[5]} for r in tasks if r[3] != "success"]

数据落地:Excel还是数据表格还是数据库

三个去处怎么选,我按数据量给结论:

去处适合场景要避的坑
数据表格当天统计、临时汇总跨任务不共享,仅当次运行内用
Excel文件长期留存、给运营看datetime写入少8小时的坑
数据库多机器人集中写入连接完记得关闭连接

Excel那个时区坑必须展开说:用office或wps写入Python的datetime.datetime类型时,时间会早8个小时,因为被当成UTC写了。解决方案官方文档给了两个——转成字符串再写,或者时间上加8小时。我现在统一在写入前用【日期时间转换为文本】转字符串,一劳永逸。

对接调度中心:执行记录的自动拉取

在这里插入图片描述

如果你们用企业版的调度管理,控制台的"任务管理→执行记录"里能看到每个计划的执行详情和异常原因,还能对异常计划重新运行。人工看是一回事,自动化拉取是另一回事:开放API里有查询任务列表、单个任务执行记录列表、查询应用运行日志这些接口,配合【HTTP 请求】指令做鉴权和轮询,就能把执行记录拉回来看板里算成功率。

【HTTP 请求】指令的响应结果里,status_code以2开头表示成功(如200),content是响应内容,若返回JSON可结合JSON相关指令解析。提醒两点:接口要做分页轮询,size最大100;鉴权token过期会直接401,统计脚本里要处理这个分支。

没上企业版的也不用慌,靠流程内的日志埋点加数据表格,照样能做单机版看板,我就是这么起步的。

结果推送:每日汇总发飞书群

统计完不推给需要的人,看板就是自嗨。我固定每天早上用【飞书群通知】指令把汇总发到运营群:机器人地址填群机器人的webhook,如果机器人开了签名校验就把密钥填上,消息格式用文本类型,需要@人就按飞书的at语法写,@所有人用 user_id=“all”。

推送内容固定四行:昨日任务数与成功率、平均耗时及环比、异常任务明细、需要人工处理的事项。异常明细超过三条就只发条数并@维护人看文档,群里别刷屏。
在这里插入图片描述

告警链路还可以再进一步:控制台"任务监控"页面本身就支持配置邮箱、钉钉、企业微信和飞书告警,计划任务执行异常时会收到提醒。我的做法是控制台告警兜底 + 看板日报主动汇报,双保险。

平台差异:不同采集任务的统计侧重点

多平台采集的看板要按平台分开统计,因为稳定性特征完全不一样。淘宝、天猫这类平台夜间任务偶发滑块验证,失败重试就能恢复;拼多多商品列表翻页快,耗时波动大,要重点盯平均耗时的趋势线。

遇到OCR验证码这类不可完全自动化的环节,统计时单独归一类"人工介入",别混进失败里拉低成功率——老板看数字时你要能解释每个数字的构成。

易错速查:看板搭建的五个高频坑

现象原因处理
Excel时间列全部少8小时datetime按UTC写入转字符串或加8小时再写
统计成功率虚高空结果没算失败成功判定加"条数达标"条件
日志太长没法解析打印格式不统一固定"字段=值"格式
飞书消息发不出webhook或签名错核对机器人地址与密钥
数据表格越跑越慢行数逼近上限定期归档清理

再加一条经验:耗时统计别只看平均数,配合最大值看。有一次某个任务平均耗时正常,但单次最大耗时从5分钟涨到40分钟,是对方页面改版导致翻页卡死,靠超时设置才兜住。
在这里插入图片描述

延伸阅读与源码

这套看板的完整流程源码我放在代码仓库 home.linyan.cloud,可以直接参考改造,把任务名换成你的计划任务,飞书群换成你自己的webhook就能跑。

运营看板这事,做了第一天觉得麻烦,做了一周就离不开。机器人替你干活,看板替你盯着机器人。


#影刀RPA #RPA自动化 #数据分析 #Excel #飞书 #定时任务

作者:林焱
在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐