|
|
@@ -256,8 +256,8 @@ class VerifyResultHandler:
|
|
|
class FlightPriceTaskRunner:
|
|
|
"""单任务流程:询价 -> 匹配 -> 验价 -> 按规则取价或 not_verify 重试."""
|
|
|
|
|
|
- def __init__(self, client: FlightPriceClient | None = None):
|
|
|
- self.logger = XmiLogger("flight_price_task")
|
|
|
+ def __init__(self, client: FlightPriceClient | None = None, logger: XmiLogger | None = None):
|
|
|
+ self.logger = logger or XmiLogger("flight_price_task")
|
|
|
self.client = client or FlightPriceClient()
|
|
|
self.matcher = ResultMatcher()
|
|
|
self.handler = VerifyResultHandler()
|
|
|
@@ -608,7 +608,7 @@ def main():
|
|
|
# 注意 \ufeff 是 UTF-8 的 BOM
|
|
|
# 所以需要使用 utf-8-sig 编码
|
|
|
task_list = []
|
|
|
- runner = FlightPriceTaskRunner()
|
|
|
+ runner = FlightPriceTaskRunner(logger=logger)
|
|
|
|
|
|
# 1 读取任务列表
|
|
|
output_dir = "./keep_0"
|
|
|
@@ -658,14 +658,21 @@ def main():
|
|
|
|
|
|
logger.info(f"keep_info_end: {len(keep_info_end)}")
|
|
|
# 将 keep_info_end 写入到文件csv 文件 嵌套结构要处理 提供下载页面 (历史数据需要保留)
|
|
|
- # if not os.path.exists("/home/node04/descending_cabin_files"):
|
|
|
- # os.makedirs("/home/node04/descending_cabin_files")
|
|
|
- with open(f"/home/node04/descending_cabin_files/keep_info_end_{datetime.now().strftime('%Y%m%d%H%M%S')}.csv", "w", encoding="utf-8-sig") as f:
|
|
|
- writer = csv.DictWriter(f, fieldnames=keep_info_end[0].keys())
|
|
|
- writer.writeheader()
|
|
|
- for task in keep_info_end:
|
|
|
- writer.writerow(task)
|
|
|
- logger.info(f"keep_info_end 写入完成")
|
|
|
+ output_dir = "/home/node04/descending_cabin_files"
|
|
|
+ os.makedirs(output_dir, exist_ok=True)
|
|
|
+ if keep_info_end:
|
|
|
+ out_path = os.path.join(
|
|
|
+ output_dir,
|
|
|
+ f"keep_info_end_{datetime.now().strftime('%Y%m%d%H%M%S')}.csv",
|
|
|
+ )
|
|
|
+ with open(out_path, "w", encoding="utf-8-sig") as f:
|
|
|
+ writer = csv.DictWriter(f, fieldnames=keep_info_end[0].keys())
|
|
|
+ writer.writeheader()
|
|
|
+ for task in keep_info_end:
|
|
|
+ writer.writerow(task)
|
|
|
+ logger.info("keep_info_end 写入完成")
|
|
|
+ else:
|
|
|
+ logger.warning("keep_info_end 为空,跳过写入CSV")
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|