Quartz入门(一)-----实现定时功能
来源:互联网 发布:游戏锁定fps软件 编辑:程序博客网 时间:2024/06/06 10:58
Quartz 是一个开源的作业调度框架,能够用它来为执行一个作业而创建简单的或复杂的调度。不啰嗦了,这里就不做简介了,直接进入主题!网上的一些代码看的比较费劲,对于初学的人很费劲,所以搞了一个mini版本的,本文就是围绕Quartz(与Spring结合)实现一个简单的定时任务!
1 引入pom文件
<properties> <spring.version>4.0.5.RELEASE</spring.version> <quartz.version>2.2.1</quartz.version> </properties>
1.1 Spring(4.0.5)
<!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency>
1.2 Quartz(2.2.1)
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>${quartz.version}</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>${quartz.version}</version> </dependency>
备注:spring3.1以上版本才支持 quartz 2.x;spring 3.1以下请使用quartz1.x
2 定时任务类的实现
在Spring中使用Quartz有两种方式实现:第一种是任务类继承QuartzJobBean,第二种则是在配置文件里定义任务类和要执行的方法,类和方法仍然是普通类。本文采用第二种方式,首先写一个简单的Mission类(定时任务的具体实现):
public class Mission { protected void execute() { System.out.println("process the timer task at [" + dateFormat() + "]"); } /** * record the time of message * * @return */ private String dateFormat() { long time = System.currentTimeMillis(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(time); return sdf.format(date); }}
3 配置文件(spring.xml)
<bean id="SpringQtzJob" class="com.quartz.demo.Mission"/> <bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="SpringQtzJob"/> </property> <property name="targetMethod"> <!-- 要执行的方法名称 --> <value>execute</value> </property> </bean> <!-- ======================== 调度触发器 ======================== --> <bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="SpringQtzJobMethod"></property> <property name="cronExpression" value="0/5 * * * * ?"></property> <!--cron表达式--> </bean> <!-- ======================== 调度工厂 ======================== --> <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="CronTriggerBean"/> </list> </property> </bean>
4 测试
在这里我直接写一个类运行它的main方法,在该类中加载sping的配置文件。
@Service@ImportResource("classpath:spring.xml")public class TaskEnter { @SuppressWarnings("resource") public static void main(String[] args) throws InterruptedException { /** * load spring */ ApplicationContext context = new AnnotationConfigApplicationContext(TaskEnter.class); TaskEnter taskEnter = context.getBean(TaskEnter.class); System.out.println("start process..."); TimeUnit.SECONDS.sleep(10000); }}
查看运行结果:
0 0
- Quartz入门(一)-----实现定时功能
- Quartz实现定时任务(一)
- 使用Quartz实现定时功能
- 使用Quartz实现定时功能
- 使用Quartz实现定时功能
- 使用quartz实现定时功能
- 使用Quartz实现定时功能
- 使用Quartz实现定时功能
- 使用Quartz实现定时功能
- java实现Quartz定时功能
- Java Quartz实现定时功能
- spring quartz 定时功能
- Java定时框架Quartz实例详解与定时任务的Mongodb、Mysql持久化实现(一)Quartz组件
- JavaEE(Struts2)结合websocket和quartz实现定时消息推送功能
- Quartz实现定时功能,Cron表达式调度等等
- Quartz实现定时功能 job.xml文件的配置
- quartz实现定时功能实例详解(servlet定时器配置方法)
- spring整合Quartz实现简单的定时功能
- POJ 1091 跳蚤(数论+容斥)
- iOS页面2中不同的弹窗
- java实现字符串指定的部分进行反转
- java中的final变量
- mysql+uwsgi+django+nginx部署记录
- Quartz入门(一)-----实现定时功能
- 整理 javaweb 连接数据库方法
- 逻辑斯蒂回归1 -- 逻辑斯蒂回归模型
- 悬浮框的探究
- Tomcat启动问题汇总
- 编程练习题 没答案版
- hadoop 2.6 YarnScheduler接口用到的类分析
- JSTL
- 2015 年最受 Linux 爱好者欢迎的软硬件大盘点