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

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

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

首先,建立相关的包河类,例如以下图:

图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定时监听 解析完成.如有不懂可留言提问.

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

否则,后果自负。

@终于解析权归本人全部

会员卡管理系统技术解析(十八)Timer定时监听的更多相关文章

  1. 钟表维修管理系统技术解析(一) MVC架构搭建

    钟表维修管理系统技术解析(一)  MVC架构搭建 1.1新建项目 第一步:打开VS2010界面,点击左上角文件,点击新建,选择项目 1.1(图1) 第二步:点击网站Web类型,选择ASP.net MV ...

  2. Spring ApplicationContext(八)事件监听机制

    Spring ApplicationContext(八)事件监听机制 本节则重点关注的是 Spring 的事件监听机制,主要是第 8 步:多播器注册:第 10 步:事件注册. public void ...

  3. 通过定时监听input框来实现onkeyup事件-

    问题:因为zepto无法使用onkeyup 事件 解决方法:通过给input框绑定focus 事件,定时的去监听input的值得改变,在鼠标移出input后,清除定时器 <!DOCTYPE ht ...

  4. Android商城开发系列(十四)—— 设置监听RecyclerView的位置

    在前面的博客中有讲到过点击一个图片按钮控制RecyclerView的滚动到顶部位置的效果,但是那个图片按钮一直处在一个显示的状态,今天我们来改造一下那个地方,我们要实现的效果是:一开始打开的时候看不到 ...

  5. 老技术记录-C#+SqlServer使用SqlDependency监听数据库表变化

    开发环境: .net / C# (.net core理论上也可以) 数据库:MS SQL Server 2005 以上 (我用的sqlserver2012) 功能:SqlDependency提供了一种 ...

  6. HAWQ技术解析(八) —— 大表分区

    一.HAWQ中的分区表        与大多数关系数据库一样,HAWQ也支持分区表.这里所说的分区表是指HAWQ的内部分区表,外部分区表在后面"外部数据"篇讨论. 在数据仓库应用中 ...

  7. android 学习随笔二十九(自定义监听 )

    package com.itheima.momo.dialog; import com.itheima.momo.R; import android.app.AlertDialog; import a ...

  8. Nginx源码研究八:nginx监听socket实现流程

    前面描述了nginx系统分析nginx的配置文件,初始化模块相关参数的过程,这里利用nginx监听socket的实现过程,做一次完整的回顾 1.首先,nginx启动的main函数中,会先初始化cycl ...

  9. Vue(八):监听属性watch

    Vue.js 可以通过 watch 来响应数据的变化. 以下实例模拟购物车里商品数量增加,对应价格也增加 <!--模拟购物车商品数量增加,价格也随之增加--> <div id = & ...

随机推荐

  1. 金融界高富帥現身快男北京唱區 陳樂:我拿生活養夢想__娛樂新聞_Yes娛樂

    http://m.baidu.com/tc?pn=15&bd_page_type=1&pu=sz%401320%5F1001%2Cta%40iphone%5F2%5F4%2E1%5F3 ...

  2. Python 收集Twitter时间序列数据

    CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-18 @author: guaguastd @name: c ...

  3. OSPF拓扑排错报告

    OSPF排错报告 故障点一:PPP链路故障 故障现象: R2和R4之间的PPP链路一会down一会UP 故障分析: 1)       ppp 认证类型是否一致 2)       ppp chap认证用 ...

  4. 用链表实现栈----《数据结构与算法分析----C语言描述》

    一.头文件: #ifndef _STACK_LINK_H_ #define _STACK_LINK_H_ struct stack_record; typedef struct stack_recor ...

  5. C++——STL中三种顺序容器的简要差别

    C++ STL 提供了3个顺序容器 :vector, deque, list Vector动态数组.支持高速訪问:list双向链表,支持高速插入和删除. vector 中的元素是顺序存放的.所以随机訪 ...

  6. CF 460C Present 【DP+】主意

    给你n高树花.m日,每天连续浇筑w鲜花.一天一次,花长1高度单位 求m天后.最矮的花最高是多少 最大最小问题能够用二分来解 首先我们能够得到全部花的最矮高度即答案的下界,给这个花浇m天即是答案的上界 ...

  7. Spring——AOP配置时的jar包异常

    首先:这不是SSH整合的,这是单独配置Spring AOP的一个小例子. 所需要的jar包:如图: 我在这里出现的两个问题: 1.没有导入asm的jar包. 所报的异常为: java.lang.Cla ...

  8. OCA读书笔记(18) - 使用Support工具

    调查和解决问题 问题:数据库中的任一严重的错误定义为一个问题,一般来说,这些错误包括大家熟悉的ORA-600错误和ORA-04031(共享池超出)错误,涉及数据库问题的所有元数据都存储在ADR中,每个 ...

  9. Oracle错误——ORA-03113:在通信信道文件的末尾 解决方案

    起源 今天跟往常一样,登陆PL/SQL,确登陆失败,出现一个错误"ORA-01034"和"ORA-27101"如图: 然后就就通过命令提示符去登陆Oracle, ...

  10. cocos2dx的发展的例子2048(加入动画版)

    网上找了很多写作教程2048.只是不知道卡的移动动画,我写了一个完美的动画版少. 开发步骤: 1,一个设计CardSprite类. 2,设计主游戏场景GameScene,实现游戏逻辑,加入动画逻辑. ...