1,quartz-all-1.7.3.jar
2,web.xml
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/applicationContext*.xml</param-value> </context-param>
3,applicationContext.xml配置调度器
<!-- 调度器 --> <bean name="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="startupDelay" value="10"></property> <property name="quartzProperties"> <props> <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop> <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop> </props> </property> <property name="triggers"> <list> <!-- 触发器列表--> <ref bean="ContractIncomeDateGeneratorTaskTrigger"/> </list> </property> </bean>
4,applicationContext-contractincome.xml
<?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:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <bean id="ContractIncomeDateGenerator" class="com.xxx.services.task.contractincome.ContractIncomeDateGenerator" scope="singleton"></bean> <bean id="ContractIncomeDateGeneratorTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="ContractIncomeDateGenerator" /> </property> <property name="targetMethod"> <value>doGenerate</value> </property> </bean> <bean id="ContractIncomeDateGeneratorTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="description" value="收入定时任务"></property> <property name="jobDetail" ref="ContractIncomeDateGeneratorTask" /> <property name="cronExpression" value="0 0 18 ? * *" /><!-- 每天18点执行一次 --> </bean> </beans>
5,java类 ContractIncomeDateGenerator.java
public class ContractIncomeDateGenerator { private Logger logger = Logger.getLogger(ContractIncomeDateGenerator.class); @Autowired private ContractIncomeDao contractIncomeDao; @Resource(name="TaskMailSender") private TaskMailSender mailSender; public void doGenerate() throws Exception { try{ //执行相关操作 } catch (Exception e) { logger.error("定时任务错误!", e); } } }
备注:设置执行时间参考 Quartz在Spring中动态设置cronExpression
相关推荐
在这种情况下,第三方库Quartz就显得尤为出色。 1. **Java内置定时工具** - `java.util.Timer`: 这是一个简单的定时器,可以安排单次或周期性的任务。它通过`TimerTask`类来定义要执行的任务。但是,`Timer`类不是...
Spring通过其AOP(面向切面编程)特性,可以方便地集成各种第三方库,包括Quartz。 Quartz是开源的作业调度库,它可以用来创建、调度和执行计划任务。Quartz支持多种调度策略,如简单触发器、cron触发器等,能够...
二是借助第三方库如Quartz,提供了更强大的任务调度能力,可以满足复杂的企业级应用需求。选择哪种方式取决于具体的应用场景和对灵活性的需求。在实际项目中,往往根据项目规模和需求复杂性来决定采用哪种定时任务...
目前,主要有两种方式可以实现定时任务:一种是Java自带的定时任务实现,另一种是通过第三方框架实现。在这两种方式中,Spring框架提供了自己的定时任务工具Spring Task,以及与专业定时任务框架Quartz集成的能力。 ...
5. **监控与管理**:为了更好地管理和监控定时任务,可以利用Quartz提供的JMX支持,或者使用第三方的监控工具,如Spring Boot Actuator,实时查看任务状态和执行情况。 6. **心得分享**:在实践中,要注意任务的...
Spring框架作为Java领域广泛使用的轻量级框架,提供了与第三方库Quartz的整合,使得开发者能够轻松地在Spring应用中实现复杂的定时任务调度。Quartz是一款开源的作业调度框架,支持丰富的调度策略,可以满足各种定时...
接下来,Spring还支持集成第三方定时任务库,如Quartz和Timer。Quartz是一个强大的、完全开源的作业调度框架,它可以以JDBC、RAM、文件系统或集群模式存储作业和触发器。在Spring中使用Quartz,可以通过`org.spring...
SpringBoot 中使用 Quartz 管理定时任务是非常有用的,因为定时任务在系统中用的地方很多,例如每晚凌晨的数据备份,每小时获取第三方平台的 Token 信息等等。之前我们都是在项目中规定这个定时任务什么时候启动,...
Spring框架提供了一系列工具来支持定时任务的实现,其中包括Spring自带的`spring-task`模块和第三方的Quartz库。下面我们将详细探讨这两种方式以及如何通过注解和非注解的方式进行配置。 首先,`spring-task`是...
然而,对于更复杂的调度需求,开发者通常会使用第三方库,如Quartz和Spring的`@Scheduled`注解。这些框架提供了更为灵活的定时策略和管理功能。 2. **Quartz库** Quartz是一个开源的作业调度框架,可以用来创建、...
在Java中,我们可以使用多种方式来实现定时任务,如Java内置的`java.util.Timer`类、`java.util.concurrent.ScheduledExecutorService`,以及更强大的第三方库如Quartz Scheduler和Spring框架中的`@Scheduled`注解等...
对于这些高级需求,开发者通常会使用Quartz、Spring的`@Scheduled`注解或其他第三方库。 此外,需要注意的是,`java.util.Timer`线程模型可能导致内存泄漏问题,因为它使用单个后台线程处理所有任务,即使任务已经...
在Java编程环境中,我们可以利用Java的定时任务框架如ScheduledExecutorService或者第三方库Quartz来实现MySQL数据库的定时备份。MySQL数据库备份通常涉及到两种主要的方法:全量备份和增量备份。全量备份是复制整个...
因此,出现了如Quartz、Spring Scheduler、Cron4j等第三方框架,它们提供了更强大、更灵活的定时任务解决方案。 二、Citic Scheduler特性 1. **易于集成**:Citic Scheduler设计为轻量级框架,能够快速地整合到现有...
Spring-context-support-3.0.2.RELEASE.jar是Spring框架的一部分,提供了对第三方库如JavaMail的支持,使得在Spring应用中集成邮件服务变得简单。activation.jar是JavaBeans Activation Framework的JAR,用于处理...
除了上述方法,还可以利用Quartz或Spring Boot的Actuator等第三方库来实现更复杂的定时任务需求。Quartz是一个功能丰富的作业调度框架,而Actuator则为Spring Boot应用提供了健康检查、审计跟踪、定时任务等功能。 ...
* Quartz Scheduler:Quartz Scheduler是第三方提供的定时任务机制,该机制提供了更强大的定时任务功能。 三、Java定时任务的实现机制 Java定时任务的实现机制可以分为两部分:任务的创建和任务的执行。 * 任务的...
在SpringBoot项目中,我们可以利用Spring的内置定时器或者集成第三方库Quartz来实现定时任务。 首先,SpringBoot自身提供的定时任务功能是通过`@EnableScheduling`注解来开启的。例如,在`ScheduledTasks`类中,...
Spring定时任务支持更多的功能,比如任务执行的并发控制、任务执行的监听器、以及使用Quartz等第三方调度库进行更复杂的任务调度。 总结,Spring定时任务为开发者提供了方便的API和注解,使我们可以轻松地在Java...