21 lines
1.7 KiB
Markdown
21 lines
1.7 KiB
Markdown
---
|
|
title: 异步楼宇查询完成并验证即时单线程写入
|
|
type: fact
|
|
permalink: main/projects/8e229c96-a83b-4a02-ac40-10a0a9da444e/异步楼宇查询完成并验证即时单线程写入
|
|
stable_id: b9737736-3f60-4325-8504-bc30e06e5c21
|
|
scope: project
|
|
project_id: 8e229c96-a83b-4a02-ac40-10a0a9da444e
|
|
memory_type: fact
|
|
status: active
|
|
revision: 1
|
|
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
|
|
created_at: '2026-09-23T15:02:00.042129+00:00'
|
|
updated_at: '2026-09-23T15:02:00.042185+00:00'
|
|
tags:
|
|
- asyncio
|
|
- aiohttp
|
|
- csv
|
|
- validation
|
|
---
|
|
|
|
GetNRBuildingsData.py已改aiohttp异步ClientSession连接池,CONCURRENCY=8(固定worker数),有界结果队列容量为2倍协程数;单独ThreadPoolExecutor(max_workers=1)拥有CSV句柄,每个结果写入并flush,不再全查完再导出。properties字段扩展由该线程通过临时CSV原子替换完成,保留旧行,按返回顺序写入不保证输入顺序。写入失败会取消worker,认证失败/中断停止领取新坐标,已领取结果写完。保留用户本地LIMIT=1000及URL/Cookies默认值,不修改main.py。新依赖独立requirements-nr-buildings.txt锁定aiohttp==3.14.3,已安装在项目.venv。4个本地异步测试通过,验证并发上限、慢请求未结束时输出可读、同一写线程、动态表头/多命中/空结果、不死锁、认证停止、Ctrl+C排空;真实仅查10条(前9条+JM443411),测得峰值8并发,7命中3未命中0失败。output/NRBuildingsData_async_test10.csv共10行43列,逐坐标/业务字段与前轮结果一致(不比较接口生成的要素ID)。默认凭证仅本地保留,Git/文件仓储应使用去除凭证的版本。 |