这期的项目需要用到定时调度,刚听到这个词(卧擦,这么牛逼,怎么做?),项目经理又补了一句,就是定时任务(原来是定时任务,惨汗~我心里就在想了那不就是timer吗?),任务分配下来了,开工了!
以前只写过简单的定时任务,不免心里没底,就百度了下。发现java实现定时调度任务的方法差不多有三种:第一,timer类实现。第二,ScheduleExecutorService。第三,spring+quartz。timer虽然不需要其他的jar包支持,但是timer实现的调度是单线程,并且灵活性不够,还有就是产生异常时,timer的调度任务会停止!第二种方法虽然不会存在timer类的缺陷,但是实现起来比较麻烦。最后我选择了第三种方法,一是因为我参与的项目是spring框架支持的。而是实现起来也比较容易,嘿嘿~
通过spring+quartz实现定时调度,首先在spring的配置文件加入如下的代码
<?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 要调用的工作类 --> <bean id="quartzJob" class="com.QuartzJob"></bean> <!-- 定义调用对象和调用对象的方法 --> <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 调用的类 --> <property name="targetObject"> <ref bean="quartzJob"/> </property> <!-- 调用类中的方法 --> <property name="targetMethod"> <value>work</value> </property> </bean> <!-- 定义触发时间 --> <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="jobtask"/> </property> <!-- cron表达式 --> <property name="cronExpression"> <value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value> </property> </bean> <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="doTime"/> </list> </property> </bean> </beans>
再写个需要调度的方法,如下:
package com; import java.util.Date; public class QuartzJob { public void work(){ System.out.println(new Date().toLocaleString()+"Quartz的任务调度!!!"); } }
这样就实现了简单定时调度任务了!
相关推荐
综上所述,通过ASP.NET结合Quartz.NET和TopShelf,我们可以构建一个强大且易于维护的定时任务调度系统,满足各种时间驱动业务的需求。无论是简单的周期性任务,还是复杂的定时策略,都能通过这个组合轻松实现。在...
SpringBoot整合Quartz实现定时任务调度是企业级应用中常见的需求,主要用于自动化执行某些周期性的任务,例如数据备份、报表生成、系统维护等。Quartz是一个功能强大的开源作业调度框架,能够灵活地定义任务和调度...
Quartz.NET是一个强大的开源作业调度框架,用于在.NET环境中创建和执行定时任务。它提供了高度灵活的调度功能,使得开发者可以轻松地定义和控制任务的执行时间。在"Quartz.net作业调度自定义定时执行任务多任务执行...
Quartz 是一个开源的作业调度框架,用于在 Java 应用程序中实现复杂的时间调度任务。它提供了丰富的 API,使得开发者能够轻松地定义、安排和管理任务。在本例中,我们将探讨如何利用 Quartz 实现动态任务定时调度,...
在Java世界里,Quartz是一个强大的、完全开源的作业调度框架,广泛用于构建复杂的时间触发任务。本篇文章将深入探讨如何使用Quartz在Java应用程序中实现任务调度。 Quartz库提供了一个灵活的API,可以创建、调度和...
作为一个专业的IT行业大师,我将深入解析Quartz的核心概念、工作原理以及如何实现简单的定时任务。 Quartz的主要功能在于允许开发者安排任务在特定的时间点或按照预定的周期执行。这在很多场景下都非常有用,例如...
Quartz是一款广泛使用的开源作业调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在实际应用中,我们可能需要根据业务需求动态地配置定时任务的执行方式,例如,某些任务可能需要串行执行,而其他任务则...
本Demo以"基于SSM+quartz的定时任务管理"为主题,将展示如何在Spring、SpringMVC和MyBatis(SSM)框架基础上,集成Quartz作为调度引擎,实现高效灵活的定时任务管理。 **1. SSM框架简介** SSM是Spring、SpringMVC...
Quartz是一个开源的任务调度框架,可以用来实现定时任务的调度,如定时发送邮件、定时备份数据等。Quartz具有很高的可靠性和灵活性,支持集群部署和分布式调度,并且提供了丰富的API和插件,可以轻松实现复杂的调度...
总结来说,通过C#、Quartz.NET和Log4Net,我们可以构建一个高效且可靠的定时调度任务服务。这样的服务不仅简化了日常的运维工作,也为系统的自动化和智能化提供了有力的支持。在实际开发中,要注重代码的可读性和...
首先,Quartz是一个开源的作业调度框架,它允许开发者创建、安排和执行定时任务。Quartz支持从数据库存储作业和触发器,这样可以方便地进行任务的持久化和集群环境下的任务同步。 1. **Spring与Quartz的集成**:...
Quartz是一个开源的作业调度框架,常用于创建和执行定时任务。在"spring+springMVC+mybatis+quartz动态定时任务创建"项目中,Quartz扮演着关键角色。它可以动态地添加、修改或删除定时任务,这在需要根据业务需求...
Quartz 是一个开源的作业调度框架,用于在 Java 应用程序中实现复杂的时间调度任务。它允许开发者定义定时任务,这些任务会在指定的时间点自动执行。Quartz 提供了一套丰富的 API 和支持,可以方便地与 Spring 框架...
目前,主要有两种方式可以实现定时任务:一种是Java自带的定时任务实现,另一种是通过第三方框架实现。在这两种方式中,Spring框架提供了自己的定时任务工具Spring Task,以及与专业定时任务框架Quartz集成的能力。 ...
Quartz是一个开源的作业调度框架...通过这个简单的Quartz demo,你可以学习到如何在Java项目中集成Quartz,创建和调度任务。在实际开发中,你可以根据项目需求调整Job和Trigger的配置,实现更加复杂和灵活的任务调度。
Quartz.Net是一个开源的作业调度框架,用于在.NET环境中创建和执行定时任务。它提供了高度可配置性,灵活性和稳定性,使得开发人员可以方便地在应用程序中集成定时任务功能。"基于Quartz.Net组件实现定时任务调度-...
而Quartz则是一个强大的、开源的作业调度框架,能够用于执行定时任务。本篇文章将详细探讨如何在SpringBoot项目中整合Quartz,实现动态配置定时任务。 首先,我们需要在SpringBoot项目中引入Quartz的相关依赖。在`...
3. **集群支持**:Quartz可以部署在集群环境中,多个节点共享同一份调度信息,当一个节点失败时,其他节点可以接管调度任务,提供高可用性。 4. **插件友好**:Quartz允许开发人员通过插件扩展其功能,例如日志插件...
在本文中,我们将详细介绍如何将 Spring 整合任务调度框架 Quartz,从而实现任务调度的自动化。 一、使用配置文件方式整合 Quartz 在 Spring 中,可以使用配置文件方式来整合 Quartz。这种方式非常简单,开发者只...