Quartz入门实例1-Hello job

本文介绍如何使用Maven构建包含Spring Context和Quartz的项目,通过示例代码展示了HelloJob类的具体实现及定时任务的启动流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用maven构建项目

pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0 </modelVersion>
  4. <groupId>cn.zto.quartz </groupId>
  5. <artifactId>myquartz </artifactId>
  6. <version>0.0.1-SNAPSHOT </version>
  7. <packaging>jar </packaging>
  8. <name>myquartz </name>
  9. <url>http://maven.apache.org </url>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8 </project.build.sourceEncoding>
  12. </properties>
  13. <dependencies>
  14. <dependency>
  15. <groupId>org.springframework </groupId>
  16. <artifactId>spring-context </artifactId>
  17. <version>4.0.6.RELEASE </version>
  18. </dependency>
  19. <dependency>
  20. <groupId>org.quartz-scheduler </groupId>
  21. <artifactId>quartz </artifactId>
  22. <version>2.2.1 </version>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.quartz-scheduler </groupId>
  26. <artifactId>quartz-jobs </artifactId>
  27. <version>2.2.1 </version>
  28. </dependency>
  29. <dependency>
  30. <groupId>junit </groupId>
  31. <artifactId>junit </artifactId>
  32. <version>3.8.1 </version>
  33. <scope>test </scope>
  34. </dependency>
  35. <dependency>
  36. <groupId>junit </groupId>
  37. <artifactId>junit </artifactId>
  38. <version>3.8.1 </version>
  39. <scope>test </scope>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.springframework </groupId>
  43. <artifactId>spring-context-support </artifactId>
  44. <version>4.0.6.RELEASE </version>
  45. </dependency>
  46. <dependency>
  47. <groupId>org.springframework </groupId>
  48. <artifactId>spring-tx </artifactId>
  49. <version>4.0.6.RELEASE </version>
  50. </dependency>
  51. <dependency>
  52. <groupId>org.springframework </groupId>
  53. <artifactId>spring-test </artifactId>
  54. <version>4.0.6.RELEASE </version>
  55. </dependency>
  56. <dependency>
  57. <groupId>org.apache.tomcat </groupId>
  58. <artifactId>annotations-api </artifactId>
  59. <version>6.0.41 </version>
  60. </dependency>
  61. <dependency>
  62. <groupId>mysql </groupId>
  63. <artifactId>mysql-connector-java </artifactId>
  64. <version>5.1.30 </version>
  65. </dependency>
  66. </dependencies>
  67. </project>


HelloJob代码:

  1. package cn.zto.job;
  2. import java.util.Date;
  3. import org.quartz.Job;
  4. import org.quartz.JobExecutionContext;
  5. import org.quartz.JobExecutionException;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. public class HelloJob
  9. implements Job
  10. {
  11. public void execute(JobExecutionContext context)
  12. throws JobExecutionException
  13. {
  14. System.out.println( "Hello World! - " + new Date());
  15. }
  16. }

启动Job:

  1. package cn.zto.app;
  2. import java.util.Date;
  3. import org.quartz.DateBuilder;
  4. import org.quartz.JobBuilder;
  5. import org.quartz.JobDetail;
  6. import org.quartz.Scheduler;
  7. import org.quartz.SchedulerFactory;
  8. import org.quartz.Trigger;
  9. import org.quartz.TriggerBuilder;
  10. import org.quartz.impl.StdSchedulerFactory;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import cn.zto.job.HelloJob;
  14. public class SimpleExample
  15. {
  16. public void run()
  17. throws Exception
  18. {
  19. System.out.println( "------- 初始化 ----------------------");
  20. //通过工厂获取Scheduler
  21. Scheduler sched = StdSchedulerFactory.getDefaultScheduler();
  22. System.out.println( "------- 初始化完成 -----------");
  23. Date runTime = DateBuilder.evenMinuteDate( new Date());
  24. System.out.println( "------- 将Job加入Scheduler中 -------------------");
  25. //构建一个作业实例
  26. JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity( "job1", "group1").build();
  27. //TriggerBuilder实例化一个触发器
  28. Trigger trigger = TriggerBuilder.newTrigger() //创建一个新的TriggerBuilder用来规范一个触发器
  29. .withIdentity( "trigger1", "group1") //给触发器一个名字和组名
  30. .startAt(runTime) //设置触发开始的时间
  31. .build(); //产生触发器
  32. sched.scheduleJob(job, trigger); //向Scheduler添加一个job和trigger
  33. System.out.println(job.getKey() + " 运行在: " + runTime);
  34. sched.start();
  35. System.out.println( "------- Scheduler调用结束 -----------------");
  36. System.out.println( "------- 等待5S... -------------");
  37. try
  38. {
  39. Thread.sleep( 5000L);
  40. }
  41. catch (Exception e)
  42. {
  43. }
  44. System.out.println( "------- Scheduler关闭 -----------------");
  45. sched.shutdown( true);
  46. System.out.println( "------- Scheduler完成 -----------------");
  47. }
  48. public static void main(String[] args) throws Exception
  49. {
  50. SimpleExample example = new SimpleExample();
  51. example.run();
  52. }
  53. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值