java定时器 每天凌晨 固定执行一个方法
二、如果是需要Tomcat启动就能执行,不需要main方法的定时器的话:
web.xml里面需要这么配置:
listener
listener-class
com.InitListener
/listener-class
/listener
第一个类:InitListener
package com.listener;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* 系统启动时的监听类 初始化系统数据
*
* @author jhoneder
*
*/
public class InitListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
// context销毁时,销毁初始化数据
}
public void contextInitialized(ServletContextEvent event) {
// TODO Auto-generated method stub
try {
goTimmer();
} catch (Exception e) {
System.out.println(“失败:” + e.getMessage());
}
}
private void goTimer() {
Timer timmerTask = new Timer();
Calendar calEnviron = Calendar.getInstance();
// 每天的02:00.am开始执行
calEnviron.set(Calendar.HOUR_OF_DAY, 2);
calEnviron.set(Calendar.MINUTE, 00);
// date为制定时间
Date dateSetter = new Date();
dateSetter = calEnviron.getTime();
// nowDate为当前时间
Date nowDateSetter = new Date();
// 所得时间差为,距现在待触发时间的间隔
long intervalEnviron = dateSetter.getTime() – nowDateSetter.getTime();
if (intervalEnviron 0) {
calEnviron.add(Calendar.DAY_OF_MONTH, 1);
dateSetter = calEnviron.getTime();
intervalEnviron = dateSetter.getTime() – nowDateSetter.getTime();
}
// 每24小时执行一次
timmerTask.schedule(new UseTimer(timmerTask), intervalEnviron, 1 * 1000 * 60 * 60 * 24);
}
}
第二个类:
package com.listener;
import java.util.Timer;
import java.util.TimerTask;
/**
* 被调用执行类
*
* @author Administrator
*
*/
public class UseTimer extends TimerTask {
Timer timer = new Timer();
public UseTimer(Timer timer) {
this.timer = timer;
}
/*
* 被调用具体的方法
*/
public void run() {
System.out.println(“开始具体执行!”);
}
}
不懂得话可以追问!
编写一个java定时器 每隔5秒钟向数据库表中添加一条数据 求助应该咋写啊 求具体代码
import java.util.Timer;
import java.util.TimerTask;
public class Test extends TimerTask {
public static void main(String[] args) {
Timer timer = new Timer();
Test t=new Test();
//程序运行后立刻执行任务,每隔1000ms执行一次
timer.schedule(t, 0, 1000);
}
@Override
public void run() {
System.out.println(“在此处调用插入数据库的方法”);
}
}
java的定时器怎么锁
1、首先在java创建一个thread文档。
2、其次使用thread文档在while循环里一直运行着。
3、最后通过sleep方法来达到定时器加锁效果即可。
用java编写一个定时器每隔一秒钟,在控制台打印出
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println(“0”);
}
}, 0, 1000);
java写一个定时器,定时对一个变量赋不同值,这个程序代码怎么写
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
public class MainEntry {
private int a;
public void setVal(){
Timer timer = new Timer();
//每隔一秒生成一个[1,100)内的随机整数,赋给成员a
timer.schedule(new TimerTask() {
@Override
public void run() {
Random rand = new Random();
setA(rand.nextInt(100));
}
}, 1000);
}
public void setA(int a) {
this.a = a;
}
public int getA() {
return a;
}
public static void main(String[] args) {
MainEntry me = new MainEntry();
me.setVal();
}
}