微信小程序页面迁移校验之前 P5任务处理之前
This commit is contained in:
@@ -247,6 +247,7 @@ class FlowRunner:
|
||||
"""ETL 完成后运行数据一致性检查,输出黑盒测试报告。
|
||||
|
||||
返回报告文件路径,失败时返回 None(不阻断主流程)。
|
||||
CHANGE 2026-02-26 | 改用 FETCH_ROOT 读取实际抓取数据,替代 API_SAMPLE_CACHE_ROOT
|
||||
"""
|
||||
try:
|
||||
from quality.consistency_checker import (
|
||||
@@ -259,13 +260,19 @@ class FlowRunner:
|
||||
|
||||
timer.start_step("CONSISTENCY_CHECK")
|
||||
try:
|
||||
# 优先使用 FETCH_ROOT(ETL 实际抓取的分页 JSON)
|
||||
fetch_root_str = os.environ.get("FETCH_ROOT")
|
||||
fetch_root = Path(fetch_root_str) if fetch_root_str else None
|
||||
|
||||
# 兼容保留:api_sample_dir 作为回退
|
||||
api_sample_dir_str = os.environ.get("API_SAMPLE_CACHE_ROOT")
|
||||
api_sample_dir = Path(api_sample_dir_str) if api_sample_dir_str else None
|
||||
|
||||
report = run_consistency_check(
|
||||
self.db_conn,
|
||||
fetch_root=fetch_root,
|
||||
api_sample_dir=api_sample_dir,
|
||||
include_api_vs_ods=bool(api_sample_dir),
|
||||
include_api_vs_ods=bool(fetch_root or api_sample_dir),
|
||||
include_ods_vs_dwd=True,
|
||||
tz=self.tz,
|
||||
)
|
||||
|
||||
@@ -26,6 +26,7 @@ from api.local_json_client import LocalJsonClient
|
||||
from orchestration.cursor_manager import CursorManager
|
||||
from orchestration.run_tracker import RunTracker
|
||||
from orchestration.task_registry import TaskRegistry
|
||||
from utils.task_log_buffer import TaskLogBuffer
|
||||
|
||||
|
||||
class DataSource(str, Enum):
|
||||
@@ -90,6 +91,8 @@ class TaskExecutor:
|
||||
self.logger.info("开始运行任务: %s, run_uuid=%s", task_codes, run_uuid)
|
||||
|
||||
for task_code in task_codes:
|
||||
# 为每个任务创建独立的日志缓冲区,避免多任务日志交叉
|
||||
task_log_buf = TaskLogBuffer(task_code, self.logger)
|
||||
try:
|
||||
task_result = self.run_single_task(
|
||||
task_code, run_uuid, store_id, data_source=data_source,
|
||||
@@ -107,6 +110,7 @@ class TaskExecutor:
|
||||
results.append(result_entry)
|
||||
except Exception as exc: # noqa: BLE001
|
||||
self.logger.error("任务 %s 失败: %s", task_code, exc, exc_info=True)
|
||||
task_log_buf.error("任务失败: %s", exc)
|
||||
# CHANGE 2026-02-24 | 任务失败后 rollback,防止 InFailedSqlTransaction 级联
|
||||
try:
|
||||
self.db.rollback()
|
||||
@@ -119,6 +123,9 @@ class TaskExecutor:
|
||||
"counts": {},
|
||||
})
|
||||
continue
|
||||
finally:
|
||||
# 任务完成(无论成功/失败),一次性输出该任务的缓冲日志
|
||||
task_log_buf.flush()
|
||||
|
||||
self.logger.info("所有任务执行完成")
|
||||
return results
|
||||
|
||||
@@ -37,6 +37,8 @@ from tasks.dws import (
|
||||
AssistantFinanceTask,
|
||||
MemberConsumptionTask,
|
||||
MemberVisitTask,
|
||||
AssistantProjectTagTask,
|
||||
MemberProjectTagTask,
|
||||
FinanceDailyTask,
|
||||
FinanceRechargeTask,
|
||||
FinanceIncomeStructureTask,
|
||||
@@ -156,6 +158,9 @@ default_registry.register("DWS_ASSISTANT_SALARY", AssistantSalaryTask, layer="DW
|
||||
default_registry.register("DWS_ASSISTANT_FINANCE", AssistantFinanceTask, layer="DWS", depends_on=["DWS_ASSISTANT_SALARY"])
|
||||
default_registry.register("DWS_MEMBER_CONSUMPTION", MemberConsumptionTask, layer="DWS")
|
||||
default_registry.register("DWS_MEMBER_VISIT", MemberVisitTask, layer="DWS")
|
||||
# CHANGE [2026-03-07] intent: 注册项目标签任务,依赖 DWD 装载完成
|
||||
default_registry.register("DWS_ASSISTANT_PROJECT_TAG", AssistantProjectTagTask, layer="DWS", depends_on=["DWD_LOAD_FROM_ODS"])
|
||||
default_registry.register("DWS_MEMBER_PROJECT_TAG", MemberProjectTagTask, layer="DWS", depends_on=["DWD_LOAD_FROM_ODS"])
|
||||
default_registry.register("DWS_FINANCE_DAILY", FinanceDailyTask, layer="DWS")
|
||||
default_registry.register("DWS_FINANCE_RECHARGE", FinanceRechargeTask, layer="DWS")
|
||||
default_registry.register("DWS_FINANCE_INCOME_STRUCTURE", FinanceIncomeStructureTask, layer="DWS")
|
||||
@@ -172,6 +177,7 @@ default_registry.register("DWS_MAINTENANCE", DwsMaintenanceTask, layer="DWS", de
|
||||
"DWS_ASSISTANT_MONTHLY", "DWS_ASSISTANT_CUSTOMER",
|
||||
"DWS_ASSISTANT_SALARY", "DWS_ASSISTANT_FINANCE",
|
||||
"DWS_MEMBER_CONSUMPTION", "DWS_MEMBER_VISIT",
|
||||
"DWS_ASSISTANT_PROJECT_TAG", "DWS_MEMBER_PROJECT_TAG",
|
||||
"DWS_FINANCE_DAILY", "DWS_FINANCE_RECHARGE",
|
||||
"DWS_FINANCE_INCOME_STRUCTURE", "DWS_FINANCE_DISCOUNT_DETAIL",
|
||||
"DWS_BUILD_ORDER_SUMMARY",
|
||||
|
||||
Reference in New Issue
Block a user