java timer 定时任务

  • 监听类
 1 package com.xx.model;
 2 
 3 import java.util.Calendar;
 4 import java.util.Date;
 5 import java.util.Timer;
 6 import javax.servlet.ServletContextEvent;
 7 import javax.servlet.ServletContextListener;
 8 import org.apache.commons.logging.Log;
 9 import org.apache.commons.logging.LogFactory;
10 import com.xx.model.XXTask;
11 
12 public class XXTimerListener  implements ServletContextListener  {
13     
14     private Timer timer = null;
15     private static final Log log = LogFactory.getLog(XXTimerListener.class);
16     final Log logrecords = LogFactory.getLog("records");
17 
18     public void contextDestroyed(ServletContextEvent arg0) {
19         // TODO Auto-generated method stub
20         
21     }
22     
23     public void contextInitialized(ServletContextEvent arg0) {
24         // TODO Auto-generated method stub
25         
26         try {
27             timer = new Timer(true);
28             try {
29                 Calendar calendar = Calendar.getInstance();
30                 calendar.set(Calendar.HOUR_OF_DAY, 10); // 上午10点
31                 calendar.set(Calendar.MINUTE, 0);
32                 calendar.set(Calendar.SECOND, 0);
33                 Date date = calendar.getTime(); // 第一次执行定时任务的时间
34                                                 // 如果第一次执行定时任务的时间 小于当前的时间
35                                                 // 此时要在 第一次执行定时任务的时间加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。
36                 if (date.before(new Date())) {
37                     date = addDay(date, 1);
38                 }
39                 timer.schedule(new XXTask(),date,24*3600*1000);
40                 log.info("任务创建成功!");
41             } catch (Exception e) {
42                 log.error("任务创建失败!", e);
43             }
44         } catch (Exception e) {
45             // TODO Auto-generated catch block
46             e.printStackTrace();
47         }
48     }
49     
50     public Date addDay(Date date, int num) {
51         Calendar startDT = Calendar.getInstance();
52         startDT.setTime(date);
53         startDT.add(Calendar.DAY_OF_MONTH, num);
54         return startDT.getTime();
55     }
56 }
  • 任务类
 1 package com.xx.model;
 2 import java.util.TimerTask;
 3 import org.apache.commons.logging.Log;
 4 import org.apache.commons.logging.LogFactory;
 5 /**
 6  * @author qjl
 7  * 
 8  */
 9 public class XXTask extends TimerTask {
10 
11     private static final Log log = LogFactory.getLog(XXTask.class);
12     MeasureCountsAjax mscAjax = new MeasureCountsAjax();
13 
14     @Override
15     public void run() {
16 
17         log.debug("定时任务" + new Date(System.currentTimeMillis()));
18         try {
19             //定时任务要执行的方法写这里
20         } catch (Exception e) {
21             log.error("定时运行失败", e);
22         } finally {
23         }
24     }
25 }

 

  • 在web.xml中增加
1   <listener>
2          <listener-class>
3               com.xx.model.XXTimerListener
4          </listener-class>
5     </listener>

 

转载于:https://www.cnblogs.com/qinjunli/p/4618671.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 打开txt_在python中从txt文件打开链接

我想请求一个rss程序的帮助。我所做的是收集包含我项目相关信息的网站&#xff0c;然后检查它们是否有rss提要。链接存储在txt文件中(每行一个链接)。因此&#xff0c;我有一个txt文件&#xff0c;其中包含了需要检查rss的基本url。在我找到了这个代码&#xff0c;这会使我的工…

IOS-awakeFromNib和viewDidLoad

awakeFromNib 当.nib文件被加载的时候&#xff0c;会发送一个awakeFromNib的消息到.nib文件中的每个对象&#xff0c;每个对象都可以定义自己的 awakeFromNib函数来响应这个消息&#xff0c;执行一些必要的操作。也就是说通过nib文件创建view对象是执行awakeFromNib 。 viewDid…

使用过滤统计信息解决基数预估错误

基数预估是SQL Server里一颗隐藏的宝石。一般而言&#xff0c;基数预估指的是&#xff0c;在查询编译期间&#xff0c;查询优化器尝试找出在执行计划里从各个运算符平均返回的行数。这个估计用来驱动计划本身生成并选择正确的计划运算符——例如像Nested Loop, Merge Join,还是…

faster-rcnn系列学习之准备数据

如下列举了 将数据集做成VOC2007格式用于Faster-RCNN训练的相关链接。 RCNN系列实验的PASCAL VOC数据集格式设置 制作VOC2007数据集用于Faster-RCNN训练 将数据集做成VOC2007格式用于Faster-RCNN训练 这一篇比较详细地介绍了如何制造voc2007的所有文件&#xff0c;内含相关软件…

C# 委托链、多路广播委托

委托链、多路广播委托&#xff1a;也就是把多个委托链接在一起,我们把链接了多个方法的委托称为委托链或多路广播委托 例&#xff1a; 1 class HelloWorld2 {3 //定义委托类型4 delegate void DelegationChain();5 static void Main(string[] args)6 …

openssl 生成证书_使用证书和私钥导出P12格式个人证书!

【OpenSSL】使用证书和私钥导出P12格式个人证书1, 产生CA证书1.1, 生成ca的私钥openssl genrsa -out cakey.pem 20481.2, 生成ca的自签名证书请求openssl req -new -key cakey.pem -subj "/CNExample Root CA" -out cacsr.pem1.3, 自签名ca的证书openssl x509 -req -…

PHP (20140505)

数据库表与表之间的连接是用id联系。 join on&#xff1b;转载于:https://www.cnblogs.com/sunshine-c/p/3710283.html

py-faster-rcnn代码roidb.py的解读

roidb是比较复杂的数据结构&#xff0c;存放了数据集的roi信息。原始的roidb来自数据集&#xff0c;在trian.py的get_training_roidb(imdb)函数进行了水平翻转扩充数量&#xff0c;然后prepare_roidb(imdb)【定义在roidb.py】为roidb添加了一些说明性的属性。 在这里暂时记录下…

python 概率分布_python实现概率分布

伯努利分布from scipy import statsimport numpy as npimport matplotlib.pyplot as pltxnp.arange(0,2,1)xarray([0, 1])# 求对应分布的概率&#xff1a;概率质量函数 (PMF)p0.5# 硬币朝上的概率dfstats.bernoulli.pmf(x,p)dfarray([0.5, 0.5])#绘图vlines用于绘制竖直线(vert…

CodeForces 7D Palindrome Degree 字符串hash

题目链接&#xff1a;点击打开链接 #include<stdio.h> #include<iostream> #include<string.h> #include<set> #include<vector> #include<map> #include<math.h> #include<queue> #include<string> #include<stdlib…

程序清单8-9 回送所有命令行参数和所有环境字符串

1 /*2 3 Name : test.c4 Author : blank5 Version :6 Copyright : Your copyright notice7 Description : 程序清单8-9 回送所有命令行参数和所有环境字符串8 9 */ 10 11 #include "ourhdr.h" 12 13 int main(int argc, char *argv[]) 14…

SQL快速入门

关系化数据库保存关系模式数据的容器关系模式是对业务对象实体&#xff0c;属性以及关系的抽象&#xff0c;提炼需求的名词是建立实体关系模型常用的方法。要了解E-R实体关系图的绘制。常用关系数据库Microsoft SQL Server&#xff1b;微软公司产品&#xff0c;中等规模数据库&…

Faster RCNN minibatch.py解读

minibatch.py 的功能是&#xff1a; Compute minibatch blobs for training a Fast R-CNN network. 与roidb不同的是&#xff0c; minibatch中存储的并不是完整的整张图像图像&#xff0c;而是从图像经过转换后得到的四维blob以及从图像中截取的proposals&#xff0c;以及与之对…

oracle精简版_使用Entity Framework Core访问数据库(Oracle篇)

前言哇。。看看时间 真的很久很久没写博客了 将近一年了。最近一直在忙各种家中事务和公司的新框架 终于抽出时间来更新一波了。本篇主要讲一下关于Entity Framework Core访问oracle数据库的采坑。。强调一下&#xff0c;本篇文章发布之前 关于Entity Framework Core访问oracl…

interrupt、interrupted 、isInterrupted 区别

interrupt&#xff1a;调用方法&#xff0c;是线程处于中断状态&#xff0c;但是这个方法只是让线程设置为中断状态&#xff0c;并不会真正的停止线程。支持线程中断的方法就是在坚持线程中断状态&#xff0c;一旦线程中断状态被设置为中断&#xff0c;就会抛出异常。interrupt…

java String部分源码解析

String类型的成员变量 /** String的属性值 */ private final char value[];/** The offset is the first index of the storage that is used. *//**数组被使用的开始位置**/private final int offset;/** The count is the number of characters in the String. *//**String中…

python在材料模拟中的应用_基于Python的ABAQUS二次开发及在板料快速冲压成形模拟中的应用...

2009doi:1013969/j1issn1100722012120091041013基于Python的ABAQUS二次开发及在板料快速冲压成形模拟中的应用(北京航空航天大学飞行器制造工程系,北京100191)吴向东刘志刚万敏王文平黄霖摘要:采用Python脚本语言对ABAQUS的前处理模块进行二次开发,讨论了Python脚本在ABAQUS二次…

Doxygen简介

&#xff08;转自&#xff1a;http://www.cnblogs.com/liuliunumberone/archive/2012/04/10/2441391.html&#xff09; 一&#xff0e;什么是Doxygen? Doxygen 是一个程序的文件产生工具&#xff0c;可将程序中的特定批注转换成为说明文件。通常我们在写程序时&#xff0c;或多…

javascript之闭包理解以及应用场景

1 function fn(){2 var a 0;3 return function (){4 return a;5 } 6 }如上所示&#xff0c;上面第一个return返回的就是一个闭包&#xff0c;那么本质上说闭包就是一个函数。那么返回这个函数有什么用呢&#xff1f;那是因为这个函数可以调用到它外部的a…

faster rcnn学习之rpn、fast rcnn数据准备说明

在上文《 faster-rcnn系列学习之准备数据》,我们已经介绍了imdb与roidb的一些情况&#xff0c;下面我们准备再继续说一下rpn阶段和fast rcnn阶段的数据准备整个处理流程。 由于这两个阶段的数据准备有些重合&#xff0c;所以放在一起说明。 我们并行地从train_rpn与train_fas…