任務執行情況彙總報告

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日