侧边栏壁纸
  • 累计撰写 72 篇文章
  • 累计创建 31 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

Scheduled多任务的冲突解决-Peak-Gao

PeakGao
2024-11-27 / 0 评论 / 0 点赞 / 2 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材可能会来自网络,若不小心影响到您的利益,请联系我们删除。

/**
 * @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()))
    }
}
0
bug
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区