使用quartz-scheduler实现定时任务

首先pom.xml文件中添加依赖:

<dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.3.0</version>
</dependency>

下面是一个实现定时任务的demo:
private static final int TIME = 2;

public void startAutoJob() throws Exception{
        /*
         *在 Quartz 中, scheduler 由 scheduler 工厂创建:DirectSchedulerFactory 或者 StdSchedulerFactory。第二种工厂 StdSchedulerFactory 使用较多,
         *因为 DirectSchedulerFactory 使用起来不够方便,需要作许多详细的手工编码设置。
         */
        // 获取Scheduler实例
        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
        scheduler.start();
        System.out.println("scheduler.start");

        //具体任务.
        JobDetail jobDetail = JobBuilder.newJob(WeatherDataSyncJob.class).withIdentity("job1","group1").build();

        //触发时间点. (每5秒执行1次.)
        SimpleScheduleBuilder simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(TIME).repeatForever();
        Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1","group1").startNow().withSchedule(simpleScheduleBuilder).build();

        // 交由Scheduler安排触发
        scheduler.scheduleJob(jobDetail,trigger);

        //睡眠20秒.
        //TimeUnit.SECONDS.sleep(20);
        //scheduler.shutdown();//关闭定时任务调度器.
        //System.out.println("scheduler.shutdown");
    }

具体执行定时任务的类代码如下:

public class WeatherDataSyncJob extends QuartzJobBean {

    private final static Logger logger = LoggerFactory.getLogger(WeatherDataSyncJob.class);

    //@Autowired
    //private WeatherDataService weatherDataService;
    /* (non-Javadoc)
     * @see org.springframework.scheduling.quartz.QuartzJobBean#executeInternal(org.quartz.JobExecutionContext)
     */
    @Override
    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
        logger.info("Weather Data Sync Job. Start!");
        }
}

执行startAutoJob方法后每隔2秒钟就会打印执行类中的日志。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,874评论 19 139
  • scheduler定时调度系统是大多行业项目都需要的,传统的spring-job模式,个人感觉已经out了,因为存...
    安琪拉_4b7e阅读 7,858评论 4 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,562评论 18 399
  • 买了好多的东西,分别装了好几个袋子。 “能不能给个大袋装到一起啊”,“可以,塑料袋三毛一个”。这样的对话很多人都有...
    六六大顺1阅读 1,522评论 0 1
  • 汽车总动员 特别有趣的一部电影 小朋友的最爱 特别是小男孩 今天手痒痒 捏一个小汽车 步骤如下 先准备好汽车的身体...
    持爱陪伴阅读 5,066评论 2 5

友情链接更多精彩内容