关于java定时任务
来源:互联网 发布:php 服务器基础知识 编辑:程序博客网 时间:2024/06/06 01:12
很多时候,java定时任务是很有必要的,我尝试了,用了两个方法,记录一下
方法一:使用ServletContextListener + Timer + timerTask
新建类继承ServletContextListener ,在初始化方法contextInitialized里写你定时器及任务,然后在web.xml配置一个监听,让服务启动时,加载这个类,运行你的定时任务.
java code
-------------------------
package com.util;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Timer;import java.util.TimerTask;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import com.dao.UserDao;public class MyListener implements ServletContextListener { Timer timer = null;//定时器 TimerTask ts = null;//任务类 public void contextDestroyed(ServletContextEvent arg0) { if(timer!=null){ timer.cancel();//当服务停止时,会调用该销毁方法,在这里停止该定时器的一切任务 } } public void contextInitialized(ServletContextEvent arg0) { timer = new Timer(); Date date = new Date();//运行的时间 date.setHours(23);//设置小时 date.setMinutes(55);//设置分钟 date.setSeconds(0);//设置秒 ts = new TimerTask(){//实例任务类 public void run(){ //真正要做的事情写在这 } }; /* 开始定时任务,参数一是任务实例,参数二是隔多长时间或规定在什么时候执行,参数三是执行完后再隔多少长时间执行 * 例:timer.schedule(ts, date,24*60*60*1000) * 在当天的23点55分0秒时执行,执行完后,隔24小时再执行*/ timer.schedule(ts, date,24*60*60*1000); }}
-------------------------
web.xml
-------------------------
<listener> <listener-class>com.util.MyListener</listener-class> </listener>
-------------------------
方法二:利用spirng提供的任务调度
在配置中,指定类,方法,指定时间,然后在总调度器注册一下,相当简单,不过,要加入几个jar包
分别是:commons-collections-3.2.1.jar,quartz-all-1.6.0.jar,spring.jar
beans.xml
-------------------------
<!-- 任务类,每天固定任务,这里写自己的普通类 --> <bean id="EveryDayTasks" class="com.util.EveryDayTasks"> <property name="elementDAO" ref="TbElementDAO" /> <property name="elementlogDAO" ref="TbElementlogDAO" /> </bean> <!-- 任务类具体信息 --> <bean id="jdEveryDayTasks" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="EveryDayTasks" /> <property name="targetMethod" value="doIt" /> <property name="concurrent" value="false" /> </bean> <!-- 任务类的进阶封装,指定具体日期循环执行 每天23:56:00执行一次--> <bean id="ctjdEveryDayTasks" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jdEveryDayTasks" /> <property name="cronExpression" value="0 56 23 * * ?" /> </bean> <!-- 总任务调度器 --> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="ctjdEveryDayTasks" /> </list> </property> </bean>
- 关于java定时任务
- java关于Timer schedule执行定时任务
- java关于Timer schedule执行定时任务
- java关于Timer schedule执行定时任务
- java关于Timer schedule执行定时任务
- java关于Timer schedule执行定时任务
- java关于Timer schedule执行定时任务
- java关于Timer schedule执行定时任务
- java关于Timer schedule执行定时任务
- 关于Linux定时任务
- 关于Spring定时任务
- 关于linux定时任务
- java定时任务,每天定时执行任务
- java定时任务,每天定时执行任务
- Java定时任务,每天定时执行任务
- java定时任务,每天定时执行任务
- javaweb 定时任务 java定时任务
- java定时任务,每天定时执行任务
- webrequest post 传输百分号‘%’
- C++设计UDP协议通讯示例
- Windows驱动开发WDM (8)- 内核同步对象
- openMP的一点使用经验—加速opencv
- 想改变 用elipse(myeclipse) 选择项目、服务发布的包名
- 关于java定时任务
- linux c库文件和头文件相关问题
- 文件修改时间
- Android Animation学习笔记
- 对顶三角形
- OK6410裸机程序---hello world
- linux下配置jdk环境变量以及查看java版本
- 爬楼梯
- 五款ASP.NET图表控件优缺分析(上):Ms Chart和TeeChart