| | |
| | | @Autowired |
| | | private CollectController collectController; |
| | | @Autowired |
| | | private WebClient webClient; // 假设已配置WebClient |
| | | @Autowired |
| | | private QuestionService questionService; |
| | | @Autowired |
| | | private KeywordService keywordService; |
| | |
| | | } |
| | | } |
| | | /** |
| | | * 实际的任务处理方法,替代原@Scheduled注解方法 |
| | | * 实际的任务处理方法, |
| | | */ |
| | | // public void executeTaskProcessing() { |
| | | // if (!isHealthy) { |
| | | // log.debug("系统不健康,跳过任务处理"); |
| | | // return; |
| | | // } |
| | | // |
| | | // // 查询所有状态为pending的任务 |
| | | // LambdaQueryWrapper<KeywordTask> queryWrapper = new LambdaQueryWrapper<>(); |
| | | // queryWrapper.eq(KeywordTask::getStatus, "pending"); |
| | | // |
| | | // keywordTaskService.list(queryWrapper) |
| | | // .stream() |
| | | // .filter(task -> task.getTask_id() != null) |
| | | // .forEach(task -> processTaskStatus(task) |
| | | // .subscribeOn(Schedulers.boundedElastic()) |
| | | // .subscribe( |
| | | // updatedTask -> log.info("任务状态已更新: {}", updatedTask.getTask_id()), |
| | | // error -> log.error("处理任务 {} 时发生错误: {}", task.getTask_id(), error.getMessage()) |
| | | // ) |
| | | // ); |
| | | // } |
| | | |
| | | |
| | | private Mono<KeywordTask> processTaskStatus(KeywordTask task) { |
| | | return collectController.getTaskStatus(task.getTask_id()) |