赞
踩
需求:服务优化改造,最初服务设计为单并发处理任务,防止任务过多导致被访问服务资源占用异常。后续优化部分类型任务执行为多并发处理,最大化利用资源。
任务处理流程:executerTask->taskMap.put(taskId,task)->schedule.scheduleAtFixedRate(execute)->getTask(WaitTask)->taskRun
任务触发-任务保存至内存Map(或者redis队列)-轮询服务每隔一段时间获取任务(本地内存Map根据任务状态获取任务,或redis队列获取任务)-获取到的任务和状态map匹配一致后触发执行,状态map获取对应任务为stop或remove则不做任何处理
初始版本任务处理ScheduleJob
- package com.demo;
-
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.concurrent.BasicThreadFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
-
- import javax.annotation.PostConstruct;
- import java.util.concurrent.ScheduledExecutorService;
- import java.util.concurrent.ScheduledThreadPoolExecutor;
- import java.util.concurrent.TimeUnit;
-
-
- @Service
- @Slf4j
- public class EvalScheduleJob {
-
-
-
- private static Sc

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。