失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 在Java中如何设置一个定时任务 在每天的一个时间点自动执行一个特定的程序

在Java中如何设置一个定时任务 在每天的一个时间点自动执行一个特定的程序

时间:2018-10-29 01:29:02

相关推荐

在Java中如何设置一个定时任务 在每天的一个时间点自动执行一个特定的程序

Quartz定时机制

首先导入jar包到程序内 quartz-all-1.6.0.jar

然后创建一个XML

TimeConfig.xml 名字可以自己定义

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN""/dtd/spring-beans.dtd"><beans><bean id="mainTask" class="net.timed.MainTask"/> //你要执行的任务类 //jar类<bean id="mainJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject"><ref bean="mainTask"/>//将你的类添加到定时器当中</property><property name="targetMethod"><value>execute</value> //定时执行类里面的哪个方法</property></bean><bean id="timeTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail"><ref bean="mainJob"/></property><!-- 0 0 10,14,16 * * ? 每天上午10点,下午2点,4点0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时0 0 12 ? * WED 表示每个星期三中午12点 "0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *" 每天上午10:15触发 "0 15 10 * * ?" 每天上午10:15触发 "0 15 10 * * ? *" 每天上午10:15触发 "0 15 10 * * ? " 的每天上午10:15触发 "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 "0 15 10 15 * ?" 每月15日上午10:15触发 "0 15 10 L * ?" 每月最后一日的上午10:15触发 "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6L 2002-" 2002年至的每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 上面这个是quartz的语法 定时单位--><property name="cronExpression"><value>0 0/5 * * * ?</value> //定时的语法</property></bean><bean id="sfb" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref local="timeTrigger"/></list></property></bean></beans>

//下面这个类就是我在XML中引入的类

package net.timed;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Date;public class MainTask {public void execute() throws IOException{SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println("do my job"+dateFormat.format(new Date()));Runtime.getRuntime().exec("cmd /c start E:/mbl/BusinessOffice/MoneDB/bin/bakup.bat");}}

然后在web.xml中把这个TimeConfig.xml添加进去作为监听

系统启动的时候自动就监听这个事件

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd"><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/TimerConfig.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>

这个是quartz spring的定时机制 请仔细的看看 如果可以请给分哦

如果觉得《在Java中如何设置一个定时任务 在每天的一个时间点自动执行一个特定的程序》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。