任务执行情况汇总报告

src/tasks/daily/finally_file.py 提供任务完成时生成临时汇总报告的能力,其他任务也可复用。


目录结构

汇总文件保存在临时目录下,按软件名和任务名分层:

{tempdir}/ok-ef/{任务名}/{任务名}_{时间戳}.txt

例如日常任务产生:

C:\Users\xxx\AppData\Local\Temp\ok-ef\日常任务\日常任务_20260709_143000.txt

目录自动构建,无需手动配置。旧文件超过 7 天自动清理。


核心函数

from src.tasks.daily.finally_file import create_task_summary_report

summary_path = create_task_summary_report(self, base_dir, summary_info)

参数

参数 类型 说明
task object 任务实例,需有 .name 属性
base_dir Path 基础目录
summary_info dict 汇总数据(见下方)
keep_days int 历史文件保留天数,默认 7

summary_info 支持字段

字段 类型 说明
status str 执行状态文本
actual_repeat_total int 实际执行轮数
per_round list[dict] 每轮详情(含 account_user/account_id/success/failed/skipped/all)
all_fail_tasks list[(int, list[str])] 旧格式:每轮失败任务列表
exception str 异常信息
current_task str 异常时正在执行的任务名
failure_details dict 按 account_id 分组的失败消息,{ account_id: { task_name: msg } }

输出内容示例

日常任务执行情况汇总 - 2026-07-09 14:30:00
==================================================
执行状态: 完成
执行轮数: 2

失败消息:

=== 账号: alice ===
失败任务:
  - 任务D : 未找到目标

--- 第 1 轮 (账号: alice) ---
总任务数: 10 | 成功: 8 | 失败: 1 | 跳过: 1

成功任务:
  任务A, 任务B, 任务C

失败任务:
  任务D

跳过任务:
  任务E

--- 第 2 轮 (账号: bob) ---
总任务数: 10 | 成功: 10 | 失败: 0 | 跳过: 0

per_round 是非空列表时,报告输出每轮详情,不会再追加旧格式的“所有任务执行成功”提示。只有未提供 per_roundall_fail_tasks 为空时才输出该提示。若同一秒内文件名冲突,函数会改用带 _压根_QWQ000(随后递增)后缀的文件名,不会覆盖已有报告。


其他工具函数

函数 用途
get_software_name() 从全局配置读取 gui_title(默认为 "ok-ef"),用于构建目录
format_failure_details_by_account(per_round, failure_details) 格式化按账号分组的失败详情
decode(text) 简单 XOR 解码,用于混淆配置中的敏感字符串

打开开关

在 DailyTask 中通过配置项 自动打开汇总文件(默认 True)控制是否在创建后用系统默认程序打开。

  • 开启:创建后调用 os.startfilewebbrowser.open 自动打开
  • 关闭:仅创建文件,不打开

开关仅控制打开行为,不影响文件创建。

在 GitHub 查看源文件 ↗ · 页面生成时间: 2026年8月10日