前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

PS:第 3 种最简单。

一、引入 jar 。

   <!-- quartz 定时任务调度 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId></dependency><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.1</version></dependency><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz-jobs</artifactId><version>2.2.1</version></dependency>

二 、实现方式 一

1. 定义好定时任务的业务内容:

package gentle.test;import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;import java.util.Date;/*** @author silence* @date 2018/7/17 11:37*/
@Service("show")
public class Show implements Job {private static Logger _log = LoggerFactory.getLogger(Show.class);@Overridepublic void execute(JobExecutionContext arg0) throws JobExecutionException {_log.info("\n\n-------------------------------\n " +"It is running and the time is : " + new Date()+"\n-------------------------------\n");}}

2. 声明定时任务,并关联业务实现类 。在 JobDetail jb = JobBuilder.newJob(Show.class) 中关联业务类 。

package gentle.test;import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;import java.util.Date;/*** @author silence* @date 2018/7/17 11:36*/
@Service("schedulerTest")
public class SchedulerTest {private static Logger _log = LoggerFactory.getLogger(Scheduler.class);public static void main(String[] args) {try {//1.创建Scheduler的工厂SchedulerFactory sf = new StdSchedulerFactory();//2.从工厂中获取调度器实例Scheduler scheduler = sf.getScheduler();//3.创建JobDetailJobDetail jb = JobBuilder.newJob(Show.class) // Show 为一个job,是要执行的一个任务。.withDescription("这是我的测试定时任务。") //job的描述.withIdentity("jy2Job", "jy2Group") //job 的name和group.build();//任务运行的时间,SimpleSchedle类型触发器有效long time = System.currentTimeMillis() + 3 * 1000L; // 3秒后启动任务Date statTime = new Date(time);//4.创建Trigger//使用SimpleScheduleBuilder或者CronScheduleBuilderTrigger t = TriggerBuilder.newTrigger().withDescription("").withIdentity("jyTrigger", "jyTriggerGroup")//.withSchedule(SimpleScheduleBuilder.simpleSchedule()).startAt(statTime)  //默认当前时间启动 ,也可以写为:.startNow();.withSchedule(CronScheduleBuilder.cronSchedule("0/2 * * * * ?")) //两秒执行一次.build();//5.注册任务和定时器scheduler.scheduleJob(jb, t);//6.启动 调度器scheduler.start();_log.info("启动时间 : " + new Date());} catch (Exception e) {_log.info("定时任务出现异常 : " + e);}}
}

3. 运行成功:

实现方式 二 。

1. 定义好定时任务的业务内容:

package gentle.test;import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;import java.util.Date;/*** @author silence* @date 2018/7/17 11:37*/
@Service("show")
public class Show implements Job {private static Logger _log = LoggerFactory.getLogger(Show.class);@Overridepublic void execute(JobExecutionContext arg0) throws JobExecutionException {_log.info("\n\n-------------------------------\n " +"It is running and the time is : " + new Date()+"\n-------------------------------\n");}}

2. 定义好定时任务的触发类,调用业务类中的实现 。

package gentle.test;import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;public class UserSyncTask {private final Logger logger = LoggerFactory.getLogger(this.getClass());@ResourceShow show;public void cronDepartmentsAndUsersJob() {logger.info("\n\n 定时--开始,当前时间: " + dateFormat().format(new Date()));try {show.execute(null);} catch (JobExecutionException e) {e.printStackTrace();}logger.info("\n\n 定时--结束,当前时间:" + dateFormat().format(new Date()));}private SimpleDateFormat dateFormat() {return new SimpleDateFormat("HH:mm:ss");}
}

3. 配置文件中 配置触发类和任务执行频率 。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"><!--定时任务触发类--><bean id="userSyncTask" class="gentle.test.UserSyncTask"></bean><!--执行频率--><task:scheduled-tasks><!--每 2 秒执行一次--><task:scheduled ref="userSyncTask" method="cronDepartmentsAndUsersJob" cron="0/2 * * * * ?" /></task:scheduled-tasks></beans>

4. 运行成功:

实现方式 三 。

1. 引入 jar , 同上。

2. 运行类 代码中只要给 2 个注解就可以了:

@EnableScheduling  // 开启定时器、

@Scheduled(fixedDelay = 2000)  或者 @Scheduled(cron = "* * 2 * * ?")   // 每 2s 执行 1 次 。

代码:

package gentle.test;import gentle.util.DateUtil;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;import java.util.Date;/*** 定时任务 -- 简版* @author silence* @date 2018/7/31 16:03*/@Component // 注册为一个bean
@EnableScheduling // 开启定时器
public class Sender {private final org.slf4j.Logger logger = LoggerFactory.getLogger(this.getClass());@Scheduled(fixedDelay = 2000) // 每 2s 执行1次。public void send() {logger.info(" \n------------------------\n " +"定时任务内容 :" + DateUtil.dateFormat().format(new Date()) +"\n------------------------\n");}
}

3. 运行效果:

源码地址:定时任务demo

Quartz 定时任务(Scheduler)的 3 种实现方式相关推荐

  1. android中的定时任务一般有两种机制,android 定时任务

    使用timertask进行定时任务 首先创建TimerTask: class SynchroTimerTask extends TimerTask { @Override public void ru ...

  2. Spring定时任务的几种实现方式

    为什么80%的码农都做不了架构师?>>>    近日项目开发中需要执行一些定时任务,比如需要在每天凌晨更新当天签到状态为未签到.从网上找了找 ,觉得这篇总结的较为详尽,就先转载下方便 ...

  3. 后端技术:Java定时任务的五种创建方式

    Quartz表达式生成地址:http://cron.qqe2.com/ 支持生成定时任务表达式和反解析,使用Quartz表达式的定时任务如下 xxl-job springboot 的 @Schedul ...

  4. java如何实现定时任务_Java定时任务的三种实现方式

    前言 现代的应用程序早已不是以前的那些由简单的增删改查拼凑而成的程序了,高复杂性早已是标配,而任务的定时调度与执行也是对程序的基本要求了. 很多业务需求的实现都离不开定时任务,例如,每月一号,移动将清 ...

  5. SpringBoot定时任务实现的两种方式介绍

    今天给大家介绍SpringBoot定时任务实现的几种方式,希望对大家能有所帮助! 1.SpringTask 用法 框架介绍:SpringTask是Spring自带的轻量级定时任务工具,相比于Quart ...

  6. scheduling java_JAVA定时任务实现的几种方式

    近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍. 一 ...

  7. 定时任务实现的几种方式

    定时任务实现的几种方式: Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行, ...

  8. Springboot集成Quartz定时任务yml文件配置方式

    构建maven项目,引入maven依赖包 其中quartz.quartz-jobs.spring-boot-starter-quartz.spring-context-support  四个依赖包为q ...

  9. java timmer模式配置_使用java配置定时任务的几种配置方式及示例

    Spring定时器,主要有两种实现方式,包括Java Timer定时和Quartz定时器! 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 package ...

  10. SpringBoot中实现quartz定时任务

    Quartz整合到SpringBoot(持久化到数据库) 背景 最近完成了一个小的后台管理系统的权限部分,想着要扩充点东西,并且刚好就完成了一个自动疫情填报系统,但是使用的定时任务是静态的,非常不利于 ...

最新文章

  1. 二代三代转录组测序分析实战班
  2. Spring 面试题(2021最新版)赶紧收藏!
  3. 《计算机网络》实验报告——使用SNORT观察网络数据包和TCP连接
  4. Futura:从纳粹主义到月球-甚至更远
  5. C++ 11 深度学习(八)重定义override
  6. 创建一个dynamics 365 CRM online plugin (三) - PostOperation
  7. 酒店管理系统-需求说明书
  8. json-server安装报错问题
  9. python确定样本量(总体均值)
  10. Code Runner使用说明(快速运行调试代码,无需配置繁杂的环境)
  11. 大数据分析:将大数据转化为巨额资金 第2章和第3章
  12. 信创操作系统--麒麟Kylin桌面版 (项目三 控制中心:账户、自定义、个性化、声音、日期、电源管理、网络、输入法、系统更新等设置)
  13. U8 8.9 数据库置疑恢复方法
  14. 专访王豫翔:编程道路上的“三少三多”
  15. 阿里云大数据分析师职业认证
  16. Windows10下QT6(C++)+OpenCV4环境配置及安装
  17. Agv、Rgv 车辆控制调度系统开发知识点篇
  18. vue项目在vscode中编译eslint报错没显示红色波浪线提示
  19. python协程处理多个文件_python:多任务(线程、进程、协程)
  20. 起始点的跳变、冲激函数匹配法

热门文章

  1. REVERSE-PRACTICE-CTFSHOW-2
  2. webgl限制帧率_从《长安十二时辰》到《Science Advances》:大帧数高帧率超表面动态全息显示新方法...
  3. C++ 异常,标准异常类,自定义异常类,throw,try,catch语句
  4. 【牛客 - 82B】区间的连续段(贪心,建图,倍增)
  5. 【HDU - 5091】Beam Cannon(线段树,扫描线)
  6. 【牛客 - 327牛客寒假算法基础集训营2 I】处女座的测验(二)(积性函数性质,数论,素数唯一性分解,STL)
  7. 【HDU - 1241】Oil Deposits (连通块问题 属于求大海中的岛屿个数 类似问题)
  8. 网站前端组织冒泡事件
  9. 计算机应用基础形考作业3Excel,国家开放大学《计算机应用基础》考试与答案形考任务模块3 模块3 Excel 电子表格系统—客观题答案(2020年整理).pptx...
  10. android 足球游戏,足球游戏哪个好玩,安卓单机足球游戏哪个好玩