任務執行情況彙總報告
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_round 且 all_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.startfile或webbrowser.open自動開啟 - 關閉:僅建立檔案,不開啟
開關僅控制開啟行為,不影響檔案建立。