定时任务Quartz超详细教程

看到一篇比较好的关于Quartz定时任务的详细介绍就想发出来,但是原博主博客打不开了。我只能发一波,希望喜欢的速来查看。。。。。

下载地址:http://download.csdn.net/detail/flower_vip/9853393
中文版目录总汇及内容提要
  1. 第一章. 企业应用中的作业调度
    内容提要:什么是作业调度,作业调度为什么说是重要的,企业应用中的作业调度,非企业应用中的作业调度,作业调度与工作流,关于作业调度其他可选择方案
  2. 第二章. Quartz 起步
    内容提要:本章对 Quartz 框架一个快速的入门介绍,同时也大略指导你从哪里下载,构建和安装这个框架
  3. 第三章. Hello Quartz (第一部分)
    内容提要:建立 Hello Quartz 工程,并创建一个 Quartz Job 类 ScanDirectoryJob.
  4. 第三章. Hello Quartz (第二部分)
    内容提要:创建一个 Quartz Scheduler,关联上一个 Quartz Trigger 以编程方式调度前面编写的 ScanDirectoryJob 运行。
  5. 第三章. Hello Quartz (第三部分)
    内容提要:通过配置 quartz.properties、quartz_jobs.xml 以声明的方式调度 ScanDirectoryJob 运行。
  6. 第三章. Hello Quartz (第四部分)
    内容提要:让我们最后简单讨论打包一个用到了 Quarts 框架的应用程序的流程,需要依赖于哪些包,也以此来结束本章的内容。
  7. 第四章. 部署 Job (第一部分)
    内容提要:介绍 Scheduler 和 SchedulerFactory 有哪些类型、SchedulerFactory 的关键 API 方法;以及如何通过 java.util.Properties 实例或默认 quartz.properties 文件创建 Scheduler。
  8. 第四章. 部署 Job (第二部分)
    内容提要:如何管理 Scheduler(启动、停止、Standby 模式)。还介绍了 Job、JobExecutionContext、JobDetail、JobDataMap,及如何访问 JobDataMap 中的数据。有状态和无状态的 Job。
  9. 第四章. 部署 Job (第三部分)
    内容提要:Job 的易失性、持久性和可恢复性,如何从 Scheduler 中移除、中断 Job。Quartz 已为我们提供了哪些 Job。最后是 Java 线程的简单介绍。
  10. 第四章. 部署 Job (第四部分)
    内容提要:线程在 Quartz 中的用法,主处理线程:QuartzSchedulerThread 和 Quartz 工作者线程。Quartz Trigger 和 Calendar 各有哪些类型和如何使用。
  11. 第五章. Cron 触发器及相关内容 (第一部分)
    内容提要:引入 Quartz CronTrigger 及简单使用 CronTrigger 来部署一个 Job
  12. 第五章. Cron 触发器及相关内容 (第二部分)
    内容提要:详细介绍了 cron 表达式的格式和像 , - * ? / L W C # 特殊符号的使用
  13. 第五章. Cron 触发器及相关内容 (第三部分)
    内容提要:CronTrigger 使用起(startTime) 迄(endTime) 日期的使用。TriggerUtils 简单方便的创建 Trigger。应用 JobInitializationPlugin 在 quartz_jobs.xml 配置文件中写 Cron 表达式。
  14. 第五章. Cron 触发器及相关内容 (第四部分)
    内容提要:Cron 表达式 Cookbook,列举了各种 Cron 表达式的写法和意义,有助于更好的理解 Cron 表达式;还用了 TriggerUtils 创建了一个即刻触发的 Trigger。
  15. 第六章. Job 存储和持久化 (第一部分)
    内容提要:介绍 Quartz 中的 Job 存储,JobStore 接口相关 API 方法。使用 RAMJobStore 来实现 Job 存储及它的优缺点。
  16. 第六章. Job 存储和持久化 (第二部分)
    内容提要:使用持久性的 JobStore,可用类型 JobStoreTX 和 JobStoreCMT。持久性 JobStore 是通过数据库来完成的,哪可支持哪些数据及需要创建些什么表。
  17. 第六章. Job 存储和持久化 (第三部分)
    内容提要:使用和配置 JobStoreTX,需要为不同数据库平台指定不同的驱动代理( DriverDelegate),和 quartz.properties 中与 JobStoreTX 相关配置说明。
  18. 第六章. Job 存储和持久化 (第四部分)
    内容提要:为 JobStoreTX 通过在 quartz.properties 配置来创建数据源,并在 Scheduler 中使用数据源
  19. 第六章. Job 存储和持久化 (第五部分)
    内容提要:从数据库中加载 Job 等信息;配置和使用 JobStoreCMT;详细说明了在 quartz.propertis 中关于 JobStoreCMT 的配置属性。
  20. 第六章. Job 存储和持久化 (第六部分)
    内容提要:为 JobStoreCMT 数据源;和 JobStoreTX 有所不同,需要为 JobStoreCMT 配置两个数据源,一个是不爱管理的,另一个是受容器管理的数据源。
  21. 第六章. Job 存储和持久化 (第七部分)
    内容提要:有关改善 JobStore 性能的讨论--主要是 JDBC JobStore;还有如何创建自定义的 JobStore--需实现 40 个接口方法。
  22. 第七章. 实现 Quartz 监听器 (第一部分)
    内容提要:简单介绍了监听器是 Quartz 框架的一个扩展点,实现一个监听器的基本步骤,最后说明了全局监听器和非全局监听器的区别。
  23. 第七章. 实现 Quartz 监听器 (第二部分)
    内容提要:JobListener (Job 监听器) 的介绍和使用方法,代码演示了如何注册了全局 Job 监听器和非全局 Job 监听器。
  24. 第七章. 实现 Quartz 监听器 (第三部分)
    内容提要:TriggerListener (Trigger 监听器) 的介绍和使用方法,代码演示了如何注册全局 Trigger 监听器和非全局 Trigger 监听器。
  25. 第七章. 实现 Quartz 监听器 (第四部分)
    内容提要:SchedulerListener (Scheduler 监听器) 的介绍和使用方法,多是关于对 Scheduler 管理事件的监听,而不只专注于 Job 或 Trigger 的。
  26. 第七章. 实现 Quartz 监听器 (第五部分)
    内容提要:Quartz 专门提供了一个与 FileScanJob 一同使用的 FileScanListener,用于监视文件 lastModifiedDate 的改变。
  27. 第七章. 实现 Quartz 监听器 (第六部分)
    内容提要:除前面用编程式使用监听器外,Quartz 还支持在 quartz_jobs.xml 中以声明式使用监听器。
  28. 第七章. 实现 Quartz 监听器 (第七部分)
    内容提要:调用监听方法的线程,按什么顺序调用监听方法,最后列了一些能够把监听器应用到什么地方。
  29. 第八章. 使用 Quartz 插件 (第一部分)
    内容提要:开始介绍 Quartz 插件,以及它要实现的接口和其中的三个接口方法的使用时机和用途。
  30. 第八章. 使用 Quartz 插件 (第二部分)
    内容提要:讲述如何创建 Quartz 插件,并用一个从指定目录中加载所有 Job 文件的 Quart 插件作为例子来说明。
  31. 第八章. 使用 Quartz 插件 (第三部分)
    内容提要:插件类写好了,就是关于如于注册插件的话题了。本节对此详细讲解,并以前面写的插件例子进行示范。
  32. 第八章. 使用 Quartz 插件 (第四部分)
    内容提要:Quartz 从属性文件中加载多个插件类时不能保证加载的顺序,所以本节引入一个自定义的统一按顺序加载其他插件的,名之为插件加载器的东西,其实也就是其他插件类的父亲。
  33. 第八章. 使用 Quartz 插件 (第五部分)
    内容提要:Quartz 还为我们提供了几个开箱即用的工具插件:JobInitializationPlugin,JobInitializationPluginMulitple,LogginJobHistoryPlugin,LoggingTriggerHistoryPlugin,ShutdownHookPlugin。
  34. 第九章. 使用 Quartz 的远程方式 (第一部分)
    内容提要:不在同一地址空间的 Quartz 需要一种远程管理的管理,Quartz 选用了 RMI。本部分主要是简单介绍了 RMI 技术。
  35. 第九章. 使用 Quartz 的远程方式 (第二部分)
    内容提要:配置、创建并运行 Quartz RMI 服务端。
  36. 第九章. 使用 Quartz 的远程方式 (第三部分)
    内容提要:配置、创建并运行 Quartz RMI 端户端,演示了 Quartz RMI 客户端通过远程调度器部署一个 Job 的 的例子。
  37. 第十章. J2EE 中使用 Quartz (第一部分)
    内容提要:J2EE 中引入 Quartz。在 J2EE 环境中作为 J2SE 客户端运行 Quartz。演示了一个 Quartz 为我们提供的 EJBInvokerJob 的例子。
  38. 第十章. J2EE 中使用 Quartz (第二部分)
    内容提要:借助于 QuartzInitializerServlet 或 QuartzInitializerListener 在 J2EE 容器上运行 Quartz,并使用容器的相关资源。
  39. 第十一章. Quartz 集群 (第一部分)
    内容提要:Quartz 应用也能进行集群。及 Quartz 集群能提供高可用性、伸缩性、进行负载均衡。
  40. 第十一章. Quartz 集群 (第二部分)
    内容提要:介绍集群中的 Quartz 应用是如何工作的。集群中的 Quartz 应用是通过中心数据库来感知道其他节点的存在。
  41. 第十一章. Quartz 集群 (第三部分)
    内容提要:如何配置使 Quartz 节点工作在集群环境中。
  42. 第十一章. Quartz 集群 (第四部分)
    内容提要:运行 Quartz 集群节点,及提供了一个关于使用 Quartz 集群的 Cookbook 参考。
  43. 第十二章. Quartz Cookbook (第一部分)
    内容提要:Scheduler 相关的 Cookbook,Scheduler 的创建、启动、停止、暂停。
  44. 第十二章. Quartz Cookbook (第二部分)
    内容提要:Job 相关的 Cookbook,Job 的创建、部署。和如何用 TriggerUtils 创建一个只需触发一次的 Job。
  45. 第十二章. Quartz Cookbook (第三部分)
    内容提要:如何替换、更新已部署的 Job。更新已存在的 Trigger。如何列示出 Scheduler 中的所有 Job 和 Trigger。
  46. 第十三章. Quartz 和 Web 应用 (第一部分)
    内容提要:Web 应用中引入 Quartz 及如何集成。
  47. 第十三章. Quartz 和 Web 应用 (第二部分)
    内容提要:在 Struts 框架中使用 Quartz,虚构了一个叫做 Job 管理控制台的 Web 应用,。需要在 Web 应用启动时创建一个 SchedulerFactory。
  48. 第十三章. Quartz 和 Web 应用 (第三部分)
    内容提要:所幸 QuartzInitializerServlet 帮了我们大忙,介绍了 QuartzInitializerServlet 在 web.xml 中的配置,指定属性文件及应用启动时 Scheduler 是否启动等。Quartz 还为我们提供了 ActionUtil 类方便了访问 SchedulerFactory 和 Scheduler。
  49. 第十三章. Quartz 和 Web 应用 (第四部分)
    内容提要:还有,别忘了我们还有一个 QuartzServletContextListener 可选择的,从 2.3 版本的 Servlet API 开始就可以用这个。
  50. 第十三章. Quartz 和 Web 应用 (第五部分)
    内容提要:最后介绍了 Quartz 官方的一个 Quartz Web 应用程序,它是以 Velocity 作为视图实现的。
  51. 第十四章. 工作流中使用 Quartz (第一部分)
    内容提要:可以把 Quartz 引入到工作流中,主要讲了单独用 Quartz 来把 Job 组成 Job 链,模拟成一个酷似工作流的东西。
  52. 第十四章. 工作流中使用 Quartz (第二部分)
    内容提要:OSWorkflow 工作流快速入门,讲了 OSWorkflow 工作流中各种概念,为它与 Quartz 集成作个铺垫。
  53. 第十四章. 工作流中使用 Quartz (第三部分)
    内容提要:讲了如何把 OSWorkflow 与 Quartz 进行集成,做了使用 Action 自定义函数的例子。
  54. 第十四章. 工作流中使用 Quartz (第四部分)
    内容提要:用 Workflow Job 来启动、运行工作流,通 JobDataMap 来传递工作流名称,transientVars 等。
  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 好的,下面是关于使用Spring Boot和Quartz实现定时任务的简介: Quartz是一个流行的Java定时任务框架,可以在应用程序中执行各种定时任务,如定期备份、数据抽取和数据分析等。而Spring Boot是一个快速开发框架,提供了方便的集成Quartz的方式。 要使用Spring Boot和Quartz实现定时任务,首先需要在pom.xml文件中添加Quartz和Spring Boot Quartz的依赖项。然后,定义一个定时任务,可以使用注解@Scheduled来指定任务的执行时间。例如: ```java @Component public class MyScheduler { @Scheduled(cron = "0 0/10 * * * ?") public void myTask() { //执行定时任务的代码 } } ``` 上述代码表示每隔10分钟执行一次myTask()方法。然后,在Spring Boot的主类中,使用@EnableScheduling注解来开启定时任务的支持。例如: ```java @SpringBootApplication @EnableScheduling public class MyApp { public static void main(String[] args) { SpringApplication.run(MyApp.class, args); } } ``` 最后,启动应用程序,定时任务将按照预定时间自动执行。如果需要更高级的定时任务控制,还可以使用Quartz的其他功能,如JobDetail和Trigger等。 ### 回答2: SpringBoot是一个开源的Java开发框架,它提供了很多有用的工具和插件,其中之一便是定时任务quartzquartz是一款功能强大的开源调度框架,它提供了简单易用的任务调度机制,支持多线程和分布式部署,可以满足大部分的调度需求。 在SpringBoot中,我们可以很方便地使用quartz来实现定时任务。以下是使用SpringBoot和quartz实现定时任务的基本步骤: 1. 在pom.xml文件中添加quartz的依赖项: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> ``` 2. 创建一个任务类,实现Job接口,并实现execute方法来定义任务逻辑: ``` @Component public class MyTask implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { // 定时任务的执行逻辑 } } ``` 3. 在配置文件中定义任务调度器,并为任务分配cron表达式: ``` spring: quartz: job-store-type: jdbc properties: org.quartz.scheduler.instanceName: MyScheduler org.quartz.threadPool.threadCount: 5 job-details: myJob: durability: true requestsRecovery: true trigger-details: myTrigger: cron: 0 0/1 * * * ? job-name: myJob job-data-map: name: world ``` 4. 在任务执行类中,使用@Scheduled注解来指定任务的执行时间: ``` @Component public class MyTask { @Scheduled(cron = "0 0/1 * * * ?") public void doTask(){ // 定时任务的执行逻辑 } } ``` 以上4种方法都是使用SpringBoot和quartz实现定时任务的简单示例,根据实际需求可以进行相应调整和扩展。总的来说,使用springboot和quartz实现定时任务非常方便,能够让我们更加轻松地管理、调度和执行任务,提高开发效率和质量。 ### 回答3: Spring Boot是一款快速构建基于Spring应用的工具,可帮助简化开发和部署。在Spring Boot中,与Quartz相比,Scheduled定时任务通常是首选的。但是,Quartz比Scheduled更灵活、功能更强大、配置更灵活,因此在一些特殊情况下,使用Quartz进行定时任务调度是比较必要的。 Quartz是用Java语言编写的一个开源的调度框架,其主要用于在一个预定义的时间间隔内重复执行某个任务,或者在特定时间点执行某个任务。Quartz提供了众多功能,比如支持分布式定时任务管理、支持动态创建/删除任务、支持时间表达式、状态存储、监控和事件触发等等。 Spring Boot集成了Quartz非常容易,只需要在Spring Boot项目中添加Quartz相关依赖,在Spring Boot配置文件中增加Quartz配置即可。以下是一个完整的Spring Boot集成Quartz的示例代码: 1.在pom.xml中添加Quartz和Spring Boot Starter Web依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>${quartz.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> ``` 2.在配置文件中增加Quartz相关配置: ``` spring.quartz.job-store-type=memory spring.quartz.properties.org.quartz.threadPool.threadCount=10 spring.quartz.properties.org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore ``` 3.编写定时任务处理类: ``` @Component public class JobScheduler { @Autowired private Scheduler scheduler; @Scheduled(cron = "0 0/1 * * * ?") public void doSomething() { JobDetail jobDetail = buildJobDetail(); Trigger trigger = buildJobTrigger(jobDetail); try { scheduler.scheduleJob(jobDetail, trigger); } catch (SchedulerException e) { e.printStackTrace(); } } private JobDetail buildJobDetail() { JobDataMap jobDataMap = new JobDataMap(); jobDataMap.put("key", "value"); return JobBuilder.newJob(Job.class) .withIdentity(UUID.randomUUID().toString(), "job-group") .withDescription("sample job") .usingJobData(jobDataMap) .storeDurably(true) .build(); } private Trigger buildJobTrigger(JobDetail jobDetail) { return TriggerBuilder.newTrigger() .forJob(jobDetail) .withIdentity(UUID.randomUUID().toString(), "trigger-group") .withDescription("sample trigger") .withSchedule(CronScheduleBuilder.cronSchedule("0 0/1 * * * ?")) .build(); } } ``` 虽然Quartz需要对定时任务进行配置,但是它提供了更为灵活的条件和任务调度,非常适合在实际生产环境中使用。总之,使用Spring Boot集成Quartz可以非常方便地实现定时任务的调度,既简单又强大,可以大大提高应用的效率和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值