java定时任务

基于maven+springboot项目开发定时任务,话不多说上代码:

@Component
@EnableAsync
@EnableScheduling
@Service
public class Schedule {

//    @Autowired
//    private IbsTaskInfoDao ibsTaskInfoDao;


    @Async
    @Scheduled(fixedRate = 2000L)
    public void task(){
//        String time = ibsTaskInfoDao.selectTime("20220601001");
//        String string = DateUtilsDemo.nextDaY(time,1);
        String localDate =LocalDateTime.now().toString();
        if (localDate.equals("2099-01-02")){
//            Batch batch = new Batch();
//            batch.setStartTime(time);
//            batch.setEndTime(string);
//            System.out.println("当前线程:"+ Thread.currentThread().getName()+
//                    "统计结束日期"+time+"结束日期第二天:"+string +"系统时间:"+ LocalDateTime.now());
            System.out.println("当前线程:"+ Thread.currentThread().getName()+"系统时间:"+ LocalDateTime.now());
            Thread.interrupted();
        }else{
            try {
//                System.out.println("线程睡眠开始:");
                Thread.sleep(60000);
//                System.out.println("线程睡眠结束:");
            } catch (InterruptedException e) {
                e.printStackTrace();
                System.out.println("线程睡眠异常,异常信息:"+e);
            }
        }



    }
    @Bean("taskExecutor")
    public Executor taskExecutor(){
        ThreadPoolTaskExecutor taskExecutor =new ThreadPoolTaskExecutor();

        //定义核心池大小是维持生存的最小线程数(并且不允许超时等)
        taskExecutor.setCorePoolSize(3);
        taskExecutor.setMaxPoolSize(50);//连接池中保留的最大连接数
        taskExecutor.setQueueCapacity(200);//queueCapacity 线程池所使用的缓冲队列
        //空闲线程存活时间,当allowCoreThreadTimeOut == false 时,会维护核心线程数量内的线程存活,超出部分会被超时。
        //allowCoreThreadTimeOut == true 核心数量内的线程 空闲时 也会被回收。
        taskExecutor.setKeepAliveSeconds(60);
        taskExecutor.setThreadNamePrefix("批处理调度");//线程池名称前缀
        taskExecutor.setAwaitTerminationSeconds(60);// 设置线程池中任务的等待时间,如果超过这个时候还没有销毁就强制销毁,以确保能够被关闭,而不是阻塞住
    return taskExecutor;
    }

代码中需要导入对应springjar包,具体如下图:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值