六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 21|回复: 0

Java中定时任务的实现

[复制链接]

升级  38.67%

28

主题

28

主题

28

主题

秀才

Rank: 2

积分
108
 楼主| 发表于 2013-2-3 11:16:18 | 显示全部楼层 |阅读模式
1. 建立TimerTask
 
package com.yingxia.asset.server.message_notice;import java.util.Date;import java.util.TimerTask;public class MessageTask extends TimerTask {@SuppressWarnings("deprecation")@Overridepublic void run() {System.out.println(new Date().toLocaleString() + "执行短信任务");}} 2. 建立ServletContextListener
 
package com.yingxia.asset.server.message_notice;import java.util.Date;import java.util.Timer;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import com.yingxia.server.commom.FileReader;public class MessageTaskListener implements ServletContextListener {private Timer timer = null;@Overridepublic void contextDestroyed(ServletContextEvent sce) {timer.cancel();System.out.println("短信任务定时器停止");}@SuppressWarnings("deprecation")@Overridepublic void contextInitialized(ServletContextEvent sce) {// 86400000 毫秒 = 1天Date d = new Date(new Date().getTime() + 86400000);String[] strs = readFirstLine().split(":");d.setHours(Integer.valueOf(strs[0]));d.setMinutes(Integer.valueOf(strs[1]));d.setSeconds(0);System.out.println("短信任务的启动时间:" + d.toLocaleString());timer = new Timer(true);timer.schedule(new MessageTask(), d, 86400000);}private String readFirstLine() {return FileReader.getFirstLine("com/yingxia/asset/server/message_notice/SetTime");}} 3. 配置web.xml
 
<!-- 短信listener --><listener><listener-class>com.yingxia.asset.server.message_notice.MessageTaskListener</listener-class></listener>  
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表