Scheduled多任务的冲突解决


/**
 * @author gaoshanshan
 *
 * @Scheduled多任务的冲突解决
 * @date 2022/1/7
 */
@Configuration
@EnableAsync
public class TaskScheduleConfig {
    private static final int corePoolSize = 10; // 默认线程数
    private static final int maxPoolSize = 100; // 最大线程数
    private static final int keepAliveTime = 10; // 允许线程空闲时间(单位:默认为秒),十秒后就把线程关闭
    private static final int queueCapacity = 200; // 缓冲队列数
    private static final String threadNamePrefix = "it`s-threadDemo-"; // 线程池名前缀
    @Bean("threadPoolTaskExecutor")
    public ThreadPoolTaskExecutor getDemoThread(){
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(corePoolSize);
        executor.setMaxPoolSize(maxPoolSize);
        executor.setQueueCapacity(keepAliveTime);
        executor.setKeepAliveSeconds(queueCapacity);
        executor.setThreadNamePrefix(threadNamePrefix);

//线程池拒绝任务的处理策略
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
//初始化
        executor.initialize();

        return executor;
    }
}

定时任务写法


/**
 * @author gaoshanshan
 * @date 2022/1/7
 */
@Component
public class SchedulerTaskController {
    private Logger logger= LoggerFactory.getLogger(SchedulerTaskController.class);
    private static final SimpleDateFormat dateFormat=new SimpleDateFormat("HH:mm:ss");
    private int count=0;
    @Scheduled(cron="0/1 * * * * ?")
    @Async("threadPoolTaskExecutor")
    public void process(){
        logger.info("英文:this is scheduler task runing "+(count++));
    }

    @Scheduled(fixedRate = 6000)
    @Async("threadPoolTaskExecutor")
    public void currentTime(){
        logger.info("中文:现在时间"+dateFormat.format(new Date()));
    }
    @Scheduled(fixedRate = 1000)
    @Async("threadPoolTaskExecutor")
    public void currentTime2(){
        logger.info("中文--------:现在时间"+dateFormat.format(new Date()));
    }
    @Scheduled(fixedDelay = 1000)
    @Async("threadPoolTaskExecutor")
    public void currentTime3(){
        logger.info("中文>>>>>>>>:现在时间"+dateFormat.format(new Date()));
    }
}
posted @ 2024-02-20 10:15  Peak-Gao  阅读(7)  评论(0编辑  收藏  举报  来源