feat: 增强爬虫系统功能和性能管理
- 新增爬虫状态接口:GET /api/crawler/status 可实时查看爬虫运行状态 - 防止重复爬取:添加 isCrawling 标志位,避免同时运行多个爬虫任务 - 增强爬虫服务:集成所有9个爬虫平台到 BidCrawlerService - 添加执行时间限制:设置最大执行时间为1小时,防止任务无限运行 - 新增来源统计功能:GET /api/bids/sources 可查看所有招标来源平台 - 优化错误处理:完善爬虫完成后的时间统计和超时警告 - 改进控制器逻辑:更好的异常处理和状态管理 - 支持的平台包括:华能、大唐、华润、三峡、中核、中广核、电能e招采、大连能源、北京电力等9大采购平台
This commit is contained in:
@@ -14,4 +14,9 @@ export class BidsController {
|
||||
getHighPriority() {
|
||||
return this.bidsService.getHighPriorityCorrected();
|
||||
}
|
||||
|
||||
@Get('sources')
|
||||
getSources() {
|
||||
return this.bidsService.getSources();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,4 +65,14 @@ export class BidsService {
|
||||
createdAt: LessThan(thirtyDaysAgo),
|
||||
});
|
||||
}
|
||||
|
||||
async getSources() {
|
||||
const result = await this.bidRepository
|
||||
.createQueryBuilder('bid')
|
||||
.select('DISTINCT bid.source')
|
||||
.where('bid.source IS NOT NULL')
|
||||
.orderBy('bid.source', 'ASC')
|
||||
.getRawMany();
|
||||
return result.map((item: any) => item.source);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user