feat(site-import): 抓取编排与内存任务表
crawler:BFS ≤10 页(深度 ≤2)+ 入口双重门(非 html 零页/SPA 空壳)+ 薄子页跳过 + CSS/logo 15s 追抓(MIME+魔数双验 ≤2MB → base64 data URL) + 总文本 <1K 内容不足 + 主色默认 #066fc0 回退;logo 相对路径对入口绝对化。 task:(slug, task_id) 联合索引内存表 + 30 分钟惰性清理 + 强引用防 GC + 全平台并发 ≤2(复活同占名额)+ 频控 3 次/15min(新建与 retry 同计, SlidingWindowCounter 同款独立实例)+ 7 分钟总超时兜底(生成段超时标 generate 可 retry=generate 复活不重抓)+ 内容不足三触发失败文案映射。 conftest 增 autouse 复位夹具(任务表/频控单例跨测试隔离)。 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -115,6 +115,17 @@ def _reset_test_endpoint_limiter():
|
||||
_reset_test_limiter_for_test()
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def _reset_site_import_tasks():
|
||||
"""site-import Task 6: 导入任务表/频控器模块级单例前后复位——(slug,
|
||||
task_id) 表与 15 分钟窗计数不隔离会串测试(前一脚打满的频控预算顶掉
|
||||
后一脚的 start 断言);运行中后台 aio 任务一并防御性取消。"""
|
||||
from app.platform.site_import.task import _reset_for_test
|
||||
_reset_for_test()
|
||||
yield
|
||||
_reset_for_test()
|
||||
|
||||
|
||||
# ---- Phase 2 Task 10: FakeAI 公共确定性桩(清理单 #1) --------------------------
|
||||
# 收敛自四份拷贝(test_lead_email_trigger / test_cc_integration /
|
||||
# test_channel_hygiene / test_lead_push_wiring,接口取超集: 前两份全量,
|
||||
|
||||
Reference in New Issue
Block a user