会员卡管理系统技术解析(十八)Timer定时监听

会员卡管理系统技术解析(十八)Timer定时监听

在web应用中,有时候客户须要一些定时程序。不须要客户自己去操作。而是由应用程序自行触发(代理)运行某些操作。

这个时候监听与定时器的配合使用就基本能够实现这个需求了。网上非常多代码并不完整,水平未到,看得太吃力了.以下以系统每天00:00:00进行的当日最大单据数维护进行实例解析。

首先,建立相关的包河类,例如以下图:
会员卡管理系统技术解析(十八)Timer定时监听
图1

然后,在"web.xml"中对定时器和监听类注冊,代码例如以下:
<servlet>
<servlet-name>listener</servlet-name>
<servlet-class>MEMBCERP.Servlet.servletlistener</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>listener</servlet-name>
<url-pattern>/listener.do</url-pattern>
</servlet-mapping>

接着,就是定时监听的编写了,代码例如以下:

package MEMBCERP.Servlet;

import java.util.Timer;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet; public class servletlistener extends HttpServlet {
/*监听转发系统代理事件*/
private Timer timer = null;
public void init(ServletConfig config) throws ServletException{
super.init(config);
timer = new Timer(true);
timer.schedule(new Todo(), 0, 1000); /*參数:方法重定向,延迟,运行时间的间隔*/
} }

最后,便是监听到符合程序,满足条件便自行进行系统维护了,代码例如以下:

package MEMBCERP.Servlet;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimerTask; import MEMBCERP.IService.JianKaYuFaFangIService;
import MEMBCERP.Service.JianKaYuFaFangService;
import MEMBCERP.pojo.SysMaxNumber;
public class Todo extends TimerTask{ @Override
public void run(){
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");//设置日期格式
String timDate=df.format(new Date());
//监听是否进行日常维护
if (timDate.equals("00:00:00")) {
ChuShiHuaZuiDaDanJuShu();
}
} public JianKaYuFaFangIService jianKaYuFaFangService=new JianKaYuFaFangService(); //实例化类
//初始化当日最大单据数
public void ChuShiHuaZuiDaDanJuShu() {
SysMaxNumber lstZuiDaDanJuShu=new SysMaxNumber();
lstZuiDaDanJuShu.setDiaoBoJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setFaFangJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setGuaShiHuiFuJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setHuiYuanKaZuoFeiJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setHuiYuanKaHuanKaJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setHuiYuanKaYouXiaoQiGengGaiJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setHuiYuanKaZhuangTaiBianDongJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setId(0);
lstZuiDaDanJuShu.setKuCunKaYouXiaoQiBianGengJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setKuCunKaZuoFeiJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setLingKaJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setTuiLingJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setGuaShiJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setJianKaJiLuZuiDaShu(0);
lstZuiDaDanJuShu.setKuCunKaZuoFeiHuiFuJiLuZuiDaShu(0);
this.jianKaYuFaFangService.UpdateZuiDaDanJuShu(lstZuiDaDanJuShu);
}
}

到此,会员卡管理系统技术解析(十八)Timer定时监听 解析完成.如有不懂可留言提问.

注意:仅供学习,禁止用于商业用途!

否则,后果自负。

@终于解析权归本人全部

上一篇:CentOS 7.3 minimal 开启网络服务


下一篇:linux定时运行命令脚本——crontab