修改新增加文件数量的查询功能

This commit is contained in:
DXC
2026-02-03 17:15:42 +08:00
parent 195c3f8fa4
commit e093ae9633
12 changed files with 548 additions and 172 deletions

View File

@ -1,8 +1,27 @@
# services/core.py
import logging
import threading
from .crawler_106 import run_106_logic
from .crawler_82 import run_82_logic
import traceback
from datetime import datetime
# 动态导入,防止文件缺失导致整个程序启动失败
try:
from .crawler_106 import run_106_logic
except ImportError:
print("⚠️ 警告: 未找到 crawler_106 模块")
def run_106_logic():
return []
try:
from .crawler_82 import run_82_logic
except ImportError:
print("⚠️ 警告: 未找到 crawler_82 模块")
def run_82_logic():
return []
task_lock = threading.Lock()
@ -12,26 +31,65 @@ def execute_monitor_task():
执行所有爬虫,返回一个大列表:
{'device_list': [item1, item2...], 'target_time': '...'}
"""
# 1. 锁机制:防止任务重复运行
if task_lock.locked():
logging.warning(">>> 任务正在运行中,跳过")
print(">>> ⚠️ 任务正在运行中,本次请求跳过")
return None
with task_lock:
logging.info(">>> 开始执行监控任务...")
print(f"--- [任务开始] {datetime.now().strftime('%H:%M:%S')} ---")
# 1. 获取 106 数据列表
list_106 = run_106_logic()
all_results = []
# 2. 获取 82 数据列表
list_82 = run_82_logic()
# ==========================
# 2. 执行 106 爬虫
# ==========================
try:
list_106 = run_106_logic()
if list_106:
count = len(list_106)
print(f"✅ 106爬虫获取数据: {count}")
# 3. 合并
combined_list = list_106 + list_82
# 🔍 [调试] 打印第一条数据,确认 num_files 是否存在
if count > 0:
first = list_106[0]
print(f" [调试检查] 106样本: {first.get('name')} | num_files={first.get('num_files')}")
logging.info(f">>> 任务完成,共获取 {len(combined_list)} 条数据")
all_results.extend(list_106)
else:
print("⚠️ 106爬虫未返回数据")
except Exception as e:
print(f"❌ 106爬虫执行失败: {e}")
traceback.print_exc()
# ==========================
# 3. 执行 82 爬虫
# ==========================
try:
list_82 = run_82_logic()
if list_82:
print(f"✅ 82爬虫获取数据: {len(list_82)}")
# 🛠️ [补全] 82爬虫没有文件数概念手动补0防止入库报错
for item in list_82:
if 'num_files' not in item:
item['num_files'] = 0
all_results.extend(list_82)
except Exception as e:
print(f"❌ 82爬虫执行失败: {e}")
traceback.print_exc()
# ==========================
# 4. 汇总返回
# ==========================
logging.info(f">>> 任务完成,共获取 {len(all_results)} 条数据")
print(f"--- [任务结束] 总计获取: {len(all_results)} 台设备 ---")
return {
'device_list': combined_list,
'target_time': None, # 具体时间已在 item 里
'temp_file_path': None # 废弃旧逻辑,文件路径已在 item 里
'device_list': all_results,
'target_time': None, # 具体时间已在 item['target_time']
'temp_file_path': None # 废弃旧逻辑,文件路径已在 item['temp_file']
}