- 浏览: 125455 次
- 性别:
- 来自: 南京
-
文章分类
- 全部博客 (97)
- Jquery (3)
- Oracle (11)
- JS (12)
- Struts2 (4)
- java (17)
- 课程 (1)
- Jboss (0)
- EJB (0)
- MAVEN (1)
- Design Pattern (0)
- css (2)
- axis1.4 (2)
- hessian (1)
- big data (1)
- Tomcat (3)
- redis (1)
- OVAL validate (1)
- express (1)
- eclipse (1)
- name node 无法启动 (1)
- hadoop (2)
- mysql (1)
- spring (1)
- sbt (1)
- angular (1)
- cas (1)
- JSSDK (1)
- 微信支付 (1)
- 小程序 (1)
- mybatis (1)
- jxta (1)
- idea (2)
- lay ui (1)
- sofa (1)
最新评论
-
duanwenping520:
这也太省事了把!
sj22
1.每隔10分钟触发
web.xml
<listener>
<listener-class>
com.listener.GoodsListener
</listener-class>
</listener>
Listener里面定义Timer
public class GoodsListener implements ServletContextListener{
private Timer daySchedule;
private static final long time_Delay=1000*60*10;//分钟
public void contextDestroyed(ServletContextEvent arg0) {
daySchedule.cancel();
}
public void contextInitialized(ServletContextEvent arg0) {
daySchedule= new Timer();
daySchedule.schedule(new GoodsTask(), time_Delay);
}
}
GoodsTask 继承TimerTask
public class GoodsTask extends TimerTask {
@Override
public void run() {
//业务处理
}
}
2.每天的6点和12点触发
public class TaskWeekSchedule implements ServletContextListener{
private Timer WeekScheduleTimer;
// 一天的毫秒数
public static final long PERIOD_DAY = 1000 * 60 * 60 * 24;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
this.
WeekScheduleTimer.cancel();
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
WeekScheduleTimer = new Timer();
//每天在固定的时间点发送信息
WeekScheduleTimer.scheduleAtFixedRate(new TaskWeek(), todayOf6(), PERIOD_DAY);
WeekScheduleTimer.scheduleAtFixedRate(new TaskWeek(), todayOf23(), PERIOD_DAY);
/*WeekScheduleTimer.schedule(new TaskWeek(), todayOf6(), PERIOD_DAY);
WeekScheduleTimer.schedule(new TaskWeek(), todayOf23(), PERIOD_DAY);
*/
}
private Date todayOf6() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY,6);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
//System.out.print(CharUtil.DateToString4(cal.getTime()));
return cal.getTime();
}
private Date todayOf23() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 12);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
//System.out.print(CharUtil.DateToString4(cal.getTime()));
return cal.getTime();
}
}
web.xml
<listener>
<listener-class>
com.listener.GoodsListener
</listener-class>
</listener>
Listener里面定义Timer
public class GoodsListener implements ServletContextListener{
private Timer daySchedule;
private static final long time_Delay=1000*60*10;//分钟
public void contextDestroyed(ServletContextEvent arg0) {
daySchedule.cancel();
}
public void contextInitialized(ServletContextEvent arg0) {
daySchedule= new Timer();
daySchedule.schedule(new GoodsTask(), time_Delay);
}
}
GoodsTask 继承TimerTask
public class GoodsTask extends TimerTask {
@Override
public void run() {
//业务处理
}
}
2.每天的6点和12点触发
public class TaskWeekSchedule implements ServletContextListener{
private Timer WeekScheduleTimer;
// 一天的毫秒数
public static final long PERIOD_DAY = 1000 * 60 * 60 * 24;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
this.
WeekScheduleTimer.cancel();
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
WeekScheduleTimer = new Timer();
//每天在固定的时间点发送信息
WeekScheduleTimer.scheduleAtFixedRate(new TaskWeek(), todayOf6(), PERIOD_DAY);
WeekScheduleTimer.scheduleAtFixedRate(new TaskWeek(), todayOf23(), PERIOD_DAY);
/*WeekScheduleTimer.schedule(new TaskWeek(), todayOf6(), PERIOD_DAY);
WeekScheduleTimer.schedule(new TaskWeek(), todayOf23(), PERIOD_DAY);
*/
}
private Date todayOf6() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY,6);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
//System.out.print(CharUtil.DateToString4(cal.getTime()));
return cal.getTime();
}
private Date todayOf23() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 12);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
//System.out.print(CharUtil.DateToString4(cal.getTime()));
return cal.getTime();
}
}
发表评论
-
微信 h5 分享
2019-09-30 09:53 258微信 h5分享 1.前端jsp 需要去除追加字符,传到后端进行 ... -
url 二级域名匹配
2016-10-14 16:32 588private static void urlMatche(S ... -
Https Basic Auth
2016-03-21 15:16 1206最近测试 Https 连接,遇到了些问题。 1. Cause ... -
unicdoe 转码
2015-12-04 16:15 501开始以为是乱码,我日。 http://www.faqs.org ... -
eclipse中取消show in Breadcrumb方法
2015-11-23 18:01 1677eclipse中取消show in Breadcrumb方法 ... -
sqserver order by 与java compareTo ,xml sting getBytes乱码
2015-08-04 23:10 6001.sqlsever orderby 顺序,取出list, 然 ... -
手动构建xml xls 日期 datetime number type
2014-10-28 19:07 1395http://ewbi.blogs.com/develops/ ... -
压缩 inputstream to zipoutputstream to bytearrayoutputstream
2014-10-21 20:06 1579http://stackoverflow.com/questi ... -
JMX demo
2014-02-07 11:05 944http://docs.oracle.com/javase/6 ... -
xsl dom 一个xml 引用另一个xml的某些节点
2014-02-07 11:07 658http://www.coderanch.com/t/1263 ... -
excel 导入导出
2013-03-20 21:35 830else if (type.equalsIgnoreCase( ... -
servlet 线程安全 application.setattribute,加上synchronized
2013-03-20 20:35 1669http://www.alixixi.com/Dev/Web/ ... -
sj22
2013-01-09 21:37 1019Organizations 字段名 含义 类型 缺省值 备 ... -
xerces jar和dom,jaxb解析冲突的解决方法
2012-10-12 22:41 32631.采用dom解析的时候,遇到Xerces.jar,会出现 E ... -
jaxb style
2012-10-12 11:55 718http://www.coderanch.com/t/4952 ... -
jsp out.print 乱码
2014-02-07 11:07 1309response.setContentType( " ...
相关推荐
下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。 需要注意的问题主要有两点: 1、Timer和TimerTask在调用cancel()取消后不能再执行 schedule语句 2、只能在UI主线程中更新...
要使用`Timer`和`TimerTask`实现单次定时执行,可以调用`Timer`的`schedule(TimerTask task, long delay)`方法,其中`delay`参数表示延迟执行的时间(以毫秒为单位)。 示例: ```java TimerTask task = new MyTask...
每个`Timer`实例都关联有一个单独的后台线程,称为"定时器线程",负责执行所有的`TimerTask`。因此,尽管任务本身可以在不同的线程中运行,但调度过程是在同一个线程中进行的。 6. **避免内存泄漏** 当`Timer`...
### Timer和TimerTask的使用详解 #### 一、引言 `Timer` 和 `TimerTask` 是Java中用于实现定时任务的重要工具。它们提供了一种简单有效的方式来安排任务的执行,既可以一次性执行也可以周期性地执行。这对于实现...
下面是一个简单的示例代码,展示了如何使用`Timer`和`TimerTask`: ```java import java.util.Timer; import java.util.TimerTask; public class TimerTaskDemo extends TimerTask { String index; Timer ...
JAVA 中提供了多种方式来实现定时器,包括使用 Timer 和 TimerTask 类,使用 ScheduledExecutorService 等。 在 JAVA 中,Timer 和 TimerTask 是两个基本的类,用于实现定时器。Timer 类用于创建一个新的定时器,而...
通过阅读`TimerTest1.java`和`TimerTest2.java`的代码,你可以进一步了解如何在实际项目中使用`Timer`和`TimerTask`来实现特定的定时任务需求。这两个测试类可能包含了创建`Timer`实例、创建`TimerTask`实例以及调度...
它通过`Timer`类和`TimerTask`类的配合使用来实现定时功能。这两个类位于`java.util`包中。 `Timer`类是定时器的管理器,它负责调度任务的执行。创建一个`Timer`实例后,可以通过`schedule`或`scheduleAtFixedRate`...
Java定时器Timer是Java编程语言中用于计划执行任务的一种工具类。Timer类主要提供了定时任务的安排执行,对于需要在指定时间后、或者以固定周期重复执行任务的场景非常有用。本文档中介绍的Timer类的实现以及如何...
【Timer定时器的使用方法】 在Java编程语言中,`java.util.Timer` 和 `java.util.TimerTask` 类是用于执行定期或延时任务的核心组件。它们允许开发者在指定的时间间隔内执行特定的操作,这对于实现定时任务,如定时...
**Spring定时器TimerTask用法** 在Java世界中,`java.util.Timer` 和 `java.util.TimerTask` 是用于实现定时任务的基本工具,但它们在多线程环境中的表现并不理想,容易引发内存泄漏。Spring框架提供了更强大的定时...
Java定时器应用主要涉及到`Timer`类和`TimerTask`类,这两个类是Java.util包下的,用于实现延时和周期性任务的调度。在Java编程中,有时我们需要执行一些任务,但不希望立即执行,而是希望在特定的时间点或者按照...
`Timer`类主要负责调度任务,可以创建一个定时器实例,然后安排一个或多个`TimerTask`在未来执行。它有两种主要的方法:`schedule(TimerTask task, long delay)`和`schedule(TimerTask task, Date firstTime, long ...
如果需要停止整个定时器,使用Timer的cancel()方法。 ```java myTask.cancel(); // 取消单个任务 timer.cancel(); // 关闭定时器,取消所有任务 ``` 5. **线程安全**: Java定时器并不是线程安全的,因此在多...
这就是定时器(Timer)的作用。本篇文章将详细探讨Android中的Timer类以及如何使用它来实现定时任务。 `Timer`类是Java.util包下的一个工具类,它提供了调度任务在未来某个时间点执行的功能。虽然在Android中,我们...
- 使用`Timer`时需要注意内存泄漏问题,因为`TimerTask`实例如果不被正确取消,可能会导致`Timer`线程无法终止,即使所有非守护线程已经结束。 - 可以通过`Timer.cancel()`方法来取消定时器,这将取消所有已安排但未...
在Java编程语言中,`Timer`和`TimerTask`是两个关键的类,它们用于创建和管理定时任务。`Timer`类提供了一种机制来安排在未来某一特定时间或以固定间隔执行任务,而`TimerTask`是这些任务的实现基础。 `Timer`类是...
Java中定时器(Timer)主要用于执行周期性的任务。通过`java.util.Timer`类,可以创建一个定时器对象,该对象负责调度事件。定时器可以用来执行两种类型的定时任务:一次性任务和周期性任务。 #### 一次性任务 一次...
我们通常写的timer都是用main方法写的定时器,但同样我们也需要根据服务器启动后定时器也启动的 定时执行任务。不过有个致命伤就是集群方面跟quartz不能比,此方法代码做参考不错,如果要用,那么这个方法在一台...
在Java和Android中,常见的定时器实现方式有多种,本示例将聚焦于Handler和TimerTask的结合使用。下面我们将详细探讨这两种机制以及如何通过它们实现一个简易定时器。 首先,Handler是Android中的一个核心组件,...