项目中有这么个需求,每天晚上24点定时执行清除数据库中某张临时表的记录,刚开始采用定时器来做,但感觉有问题。后台晚上查询发现Quartz不错,就改用了Quartz来实现,以下是一点心得和实现代码,故分享给大家。
1、web.xml配置
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>
org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>config-file</param-name>
<param-value>quartz.properties</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<listener>
<listener-class>
QuartzServiceLoader
</listener-class>
</listener>
2、监听器
public class QuartzServiceLoader implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
try {
// 监听器关闭时关闭Sheduler
TestShedule.stop();
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
public void contextInitialized(ServletContextEvent arg0) {
try {
// 监听器启动时启动Sheduler
TestShedule.run();
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
3、调度实现
public class TestShedule implements Job {
static SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
static Scheduler sched;
@SuppressWarnings("static-access")
public static void run() throws Exception {
// 获取调度管理器
sched = schedFact.getScheduler();
// 创建工作
JobDetail jobDetail = new JobDetail("myJob", sched.DEFAULT_GROUP,
TestShedule.class);
// 创建触发器
CronTrigger trigger = new CronTrigger("myTrigger", "test",
"0/10 * * * * ?"); // 每天晚上24点
// 添加到调度管理器中
sched.scheduleJob(jobDetail, trigger);
// 启动调度管理器
sched.start();
}
public static void stop() throws Exception {
sched.shutdown();
}
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("Hello,world!");
}
}
还有一些关于时间和执行的配置就不发了,网上搜索下很多的。这里只是自己的一个需求,只能起到一个抛砖引玉的作用吧。
分享到:
相关推荐
【Quartz定时任务】是Java领域的一个强大任务调度框架,但在C#中也有相应的实现,如标题所示,这里讨论的是C#控制台应用中使用Quartz.NET进行定时任务的实现。Quartz.NET允许开发者在应用程序中安排任务在特定时间...
在SpringBoot中定义定时任务,我们创建一个实现了`org.springframework.scheduling.Trigger`和`org.springframework.scheduling.TaskExecutor`接口的类,或者直接使用Quartz的`CronTrigger`或`SimpleTrigger`。...
结合使用Quartz.NET和TopShelf,我们可以构建一个在Windows服务中运行的定时任务调度系统。 Quartz.NET的特性包括: 1. **灵活的调度**:Quartz.NET支持多种调度模式,如简单触发器、cron触发器,可以按照精确时间...
Quartz.NET是一款强大的开源作业调度框架,用于在.NET环境中创建和执行定时任务。这个"Quartz.net-定时任务 Demo"示例将展示如何利用Quartz.NET来安排代码在指定时间后执行,比如几十分钟后的场景。 Quartz.NET的...
可以通过quartz和spring的简单配置即可完成,但如果要改变任务的执行时间、频率,废弃任务等就需要改变配置甚至代码需要重启服务器,这里介绍一下如何通过quartz与spring的组合实现动态的改变定时任务的状态的一个...
在实际开发中,你还可以使用Spring的`@Scheduled`注解来实现简单的定时任务,但如果你的需求更为复杂,比如需要灵活的调度策略或者更精细的控制,那么Quartz就是一个更好的选择。 标签中的“源码”意味着你可能需要...
Quartz的核心特性是能够创建、触发和管理定时任务,这些任务可以在指定的时间点或按照预定义的频率执行。 Quartz的主要组件包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是实际执行的任务,可以是...
这三个核心组件共同组成了Quartz的任务调度机制,使得开发人员可以通过配置简单的定时任务来实现复杂的调度策略。 Scheduler 是Quartz的核心组件,它负责调度和执行任务。Scheduler有一个任务管理器,负责维护任务...
在这个“quartz 实现按天、按周、按月定时任务的简单demo”中,我们将探讨如何使用 Quartz 在 Java 环境下设置按天、按周和按月的定时任务。 首先,我们需要引入 Quartz 的依赖库到项目中。通常,这可以通过 Maven ...
【C# Quartz定时任务】是基于C#编程语言实现的一种定时任务框架,它允许开发者在.NET环境中创建和管理定时任务。这个项目是在Visual Studio 2010开发环境下编写的,提供了一个可以直接运行的示例(demo),方便快速...
### Quartz 动态实现数据库任务的关键知识点 #### 一、Quartz 概述与应用场景 Quartz 是一个全面开源的任务调度框架,它提供了强大的任务调度功能。Quartz 不仅能够定义简单或复杂的循环任务,还支持多种触发机制...
然后需要创建 Quartz-job 实现类,用于实现具体的定时任务逻辑。 使用 Quartz 管理定时任务可以使得我们对定时任务的管理更加方便,快捷,可以实时地查看定时任务的状态,控制定时任务的启动和停止,减少了对服务器...
Quartz 是一个开源的作业调度框架,能够帮助开发者轻松地在 Java 应用程序中实现各种复杂的定时任务。它支持触发器(Trigger)、日历(Calendar)等功能,具有强大的扩展性和灵活性。 #### Quartz 动态定时任务原理...
.NET Core 3.1 Worker Service 是一个用于创建后台任务或长时间运行服务的框架,它在 .NET Core 平台上提供了一种简单的方式来实现定时任务。这个压缩包 "简单的定时任务 .NETCore3.1 WorkerService.zip" 包含了一个...
本Demo以"基于SSM+quartz的定时任务管理"为主题,将展示如何在Spring、SpringMVC和MyBatis(SSM)框架基础上,集成Quartz作为调度引擎,实现高效灵活的定时任务管理。 **1. SSM框架简介** SSM是Spring、SpringMVC...
它提供了高度可配置和可扩展性,使开发人员能够轻松地创建、管理和执行定时任务。标题中的"quartz-2.2.0.jar.zip"指的是Quartz库的2.2.0版本的归档文件,该文件被压缩成ZIP格式,包含"quartz-2.2.0.jar"这个主要的...
这个JAR文件包含了Quartz的核心类库和其他依赖,使得你可以实现复杂的定时任务调度。 Quartz的主要功能包括: 1. **任务与触发器**:在Quartz中,任务被称为Job,触发器则是控制何时执行这些任务的规则。Job代表了...
Quartz是Java领域一款广泛应用的开源任务调度框架,它的主要功能是实现定时任务的管理和执行。版本2.2.1是对该框架的一次更新,它可能包含了一些性能优化、bug修复以及新特性的添加。在"quartz2.2.1定时任务相关jar....
【maven-quartz 定时任务简介】 ...通过以上步骤,你就可以在Maven项目中使用Quartz实现简单的定时任务了。Quartz还提供了丰富的功能,如任务持久化、集群支持等,可以根据项目需求进行深入研究和配置。
在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"spring+springMVC+mybatis+quartz动态定时任务创建"就是一个常见的技术栈,用于实现这样的目标。这个组合充分利用了各组件的优势,提供了强大的后端服务支持...