定时任务-Quartz

/**
     * 日活跃定时任务
     */
    @RequestMapping(value="/test1",method = RequestMethod.GET)
    public void userActiveCount() throws InterruptedException, ParseException {
//        Set<Object> set = redisTemplate.opsForSet().members(RedisKeyConstants.USER_LOGIN_REDIS_KEY);
            Date startDate = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
        try {
//            startDate.setTime(startDate.getTime() + 7000);
            Date date = dateFormat.parse("2021-08-23 16-14-01");
            startDate = date;
            Date date2 = dateFormat.parse("2021-08-23 16-23-10");
            Date endDate = new Date();
            endDate.setTime(date2.getTime());
            //从定时器工厂中获取一个定时器对象
            Scheduler scheduler = new StdSchedulerFactory().getScheduler();
            //获取JobDetail实例
            JobDetail jobDetail = JobBuilder.newJob(test1.class).build();
            //获取触发器
//            //第一种 SimpleTrigger 触发器
//            CronTrigger trigger = TriggerBuilder.newTrigger()
//                    .startNow()//立即生效
//                    .startAt(startDate)
//                    .endAt(endDate)
//                    .withSchedule(
//                            SimpleScheduleBuilder.simpleSchedule()
//                            .withIntervalInSeconds(2) //每隔2秒执行一次
//                            .repeatForever()
//                    )
//                    .withSchedule(CronScheduleBuilder.cronSchedule("0/5 13 15 ? * *"))
//                    .build();//一直执行
//            //第二种 CronTrigger触发器 (使用最多)
            SimpleTrigger trigger = TriggerBuilder.newTrigger()
                    .startAt(startDate)
                    .endAt(endDate)
                    .startNow()
                    .withSchedule(SimpleScheduleBuilder.simpleSchedule()
                            .withIntervalInSeconds(60) //每隔60秒钟重复执行
                            .repeatForever()
                    ).build();
            //将JobDetail和Trigger绑定 执行
            scheduler.scheduleJob(jobDetail,trigger);
            System.out.println("-----------Scheduler start---------");
            log.info("start = " +new Date());    
            scheduler.start();


            //睡眠
//            TimeUnit.SECONDS.sleep(7L);
//            scheduler.shutdown();
            System.out.println("!!!!!!!!!!!!!Scheduler shutdown!!!!!!!!!!!!!!");

        } catch (SchedulerException e) {
            e.printStackTrace();
        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值