导航:首页 > 编程语言 > java定时器定时执行一次

java定时器定时执行一次

发布时间:2025-03-18 17:02:09

java定时器 每天凌晨 固定执行一个方法

可以通过以下方式实现,

public class TimerManager {
//时间间隔
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
public TimerManager() {
Calendar calendar = Calendar.getInstance();
/*** 定制每日:00执行方法 ***/
calendar.set(Calendar.HOUR_OF_DAY, 2);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);

Date date=calendar.getTime(); //第一次执行定时任务的时间

//如果第一次执行定时任务的时间 小于 当前的时间
//此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。
if (date.before(new Date())) {
date = this.addDay(date, 1);
}

Timer timer = new Timer();

NFDFlightDataTimerTask task = new NFDFlightDataTimerTask();
//安排指定的任务在指定的时间开始进行重复的固定延迟执行。
timer.schele(task,date,PERIOD_DAY);
}

// 增加或减少天数
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}

}

public class NFDFlightDataTimerTask extends TimerTask {

private static Logger log = Logger.getLogger(NFDFlightDataTimerTask.class);

@Override
public void run() {
try {
//在这里写你要执行的内容

} catch (Exception e) {
log.info("-------------解析信息发生异常--------------");
}
}
}

public class NFDFlightDataTaskListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
new TimerManager();
}
public void contextDestroyed(ServletContextEvent event) {
}

}

然后要在web.xml里面配置监听器
<listener>
<listener-class>
com.listener.NFDFlightDataTaskListener
</listener-class>
</listener>

⑵ 如何让java程序每天执行一次

写一个定时器

importjava.util.Timer;
importjava.util.TimerTask;

publicclassM{
publicstaticvoidmain(String[]args){
//TODOtodo.generatedbyzoer
Timertimer=newTimer();
//newMyTask()里可以写定时执行的方法1000是1s后开始执行2000是每两秒执行一次
timer.schele(newMyTask(),1000,2000);
}
}

classMyTaskextendsTimerTask{

@Override
publicvoidrun(){
System.out.println("需要定时执行的程序");

}

}

⑶ java中在定时器,定时每周一定时执行某个任务,必须在周一重新启动了服务,该任务就会在指定的时间点执行

最常来用的做法是使用UNIX的cron直接执行源Java程序。
并不需要在Java做的那么复杂。

Windows服务器也有类似于cron的任务管理功能,同理

--------------------------->
Tomcat不是用来管理定时任务的,如果没有HTTP请求,Servlet是不会被执行的。

建议lz把定期执行的处理做成一个独立的Java程序,用cron执行。
如果不想写独立的Java程序,也可以用cron定期向Tomcat发送Http请求,但是,这样做的话注意程序处理时间不能太长,因为HTTP通信有timeout的制约。

⑷ 怎样用java做个定时器,每个星期一中午12点整执行doXX这一动作。越详细越好.用监听哥跪谢!

主类:
package tiwen4; import java.util.Calendar; import java.util.Timer; public class quartz { public static void main(String[] args) { try{ Calendar cal = Calendar.getInstance();//设置定时时间 cal.add(Calendar.DATE, 0);//表示从今天的12点开始跑起来,如果当前时间超过12点会马上跑一次,否则等12点再跑第一次 cal.set(Calendar.HOUR_OF_DAY, 12);//24小时制的,12就是中午12点 cal.set(Calendar.MINUTE, 0);//分 cal.set(Calendar.SECOND, 0);//秒 Timer processTimer = new Timer(); processTimer.scheleAtFixedRate(new ProcessClass(), cal.getTime(), 86400000);//86400000是24小时,即24小时跑一次 }catch(Exception e){ e.printStackTrace(); }finally{ } } }

定时器调用的类--我在这里只是输出了一下~你也可以自己加函数:
package tiwen4; import java.util.TimerTask; public class ProcessClass extends TimerTask { @Override public void run() { // TODO Auto-generated method stub System.out.println("输出了哈哈");// } }

我上面用的只是一种方式,其实定时方式有很多的linux和window都有自带的定时器,可以直接调用,也可以用上面所说的quartz包带的框架等等

⑸ java中每个月第一天执行一次任务的定时器如何实现

Date d = new Date();//获取服务器的时间。。。
Calendar c= Canlendar.getInstance();
c.setTime(d);

if(c.get(Calendar.DAY_OF_MONTH) == 1) //当前是1号
{
//拿出党员的入党日期(年月)同当前月进行比较 如果相同 发送短信
// //写下你的判断代码
}
else //当前不是1号 则从下个月1号开始执行定期任务
{

c.set(Calendar.MONTH,c.get(Calendar.MONTH)+ 1);//设置为下月
c.set(Calendar.DAY_OF_MONTH,1);//设置为下月的1号

Timer timer =new Timer();

timer.scheleAtFixedRate(new TimerTask()
{
public void run()
{
//每天都来判断一下 如果当前日期是1号
////则拿出党员的入党日期(年月)同当前月进行比较 如果相同 发送短信
//run函数里写下你的判断代码
}},c.getTime(),24* 3600*1000); //每天执行一次run()方法...
}

阅读全文

与java定时器定时执行一次相关的资料

热点内容
网络响应报错是什么意思 浏览:841
怎么查看自己qq密码 浏览:177
哪些app可以租两个月房子 浏览:727
苹果app下载文件怎么拷贝 浏览:472
苹果4s2016年还用丢脸吗 浏览:795
怎么总结做出来的数据分析 浏览:250
文件中的附件2是什么意思 浏览:289
如何通过数据工具转型 浏览:242
iosapp图标文件名 浏览:818
微信可以发电脑文件吗 浏览:948
javaexcel2007兼容包 浏览:556
文件柜三门尺寸多少 浏览:279
僵尸咖啡厅15安卓 浏览:921
js加密c解密 浏览:79
mac如何打开ink文件 浏览:333
电脑重装映像文件无效 浏览:24
在就电脑上安装win10还需要分区吗 浏览:801
欧姆龙编程软件哪个好用吗 浏览:656
执行文件导入什么菜单 浏览:310
qq空间显示地点四个字 浏览:317

友情链接