java 定时器只执行一次_java当中的定时器的4种使用方式及执行次数

本文详细介绍了Java中定时器的四种使用方式:1) 设定指定任务在指定时间执行;2) 设定指定任务在指定延迟后进行固定延迟的执行;3) 设定指定任务在指定延迟后进行固定频率的执行;4) 安排任务在指定时间开始进行重复的固定速率执行。通过示例代码展示了如何设置和控制任务执行的时机和频率。
摘要由CSDN通过智能技术生成

package pretoct;

import java.util.Calendar;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

public class TimeTest {

public static void main(String[] args) {

//timer1();

//timer2();

//timer3();

timer4();

}//main

// 第一种方法:设定指定任务task在指定时间time执行 schedule(TimerTask task, Date time)

public static void timer1() {

Timer timer = new Timer();

timer.schedule(new TimerTask() {

public void run() {

System.out.println("-------设定要指定任务1--------");

}

}, 2000);// 设定指定的时间time,此处为2000毫秒,只执行一次

}//timer1

// 第二种方法:设定指定任务task在指定延迟delay后进行固定延迟peroid的执行

// schedule(TimerTask task, long delay, long period)

public static void timer2() {

Timer timer = new Tim

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果因为网络波动导致定时任务没有执行,你可以考虑使用Quartz提供的Misfire机制来解决这个问题。Misfire是指当一个Trigger错过了它应该被触发的时间时,Quartz会尝试将它执行,而不是直接跳过。 Quartz提供了几Misfire处理策略,你可以根据实际情况选择合适的策略。常见的Misfire处理策略有: 1. MISFIRE_INSTRUCTION_FIRE_NOW:立即触发任务,不考虑错过的时间段。 2. MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT:重新安排任务,保留原来的执行次数和间隔时间。 3. MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT:重新安排任务,但是执行次数会减少,间隔时间不变。 4. MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT:重新安排任务,保留原来的执行次数,但是间隔时间会变成当前时间。 5. MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT:重新安排任务,但是执行次数会减少,间隔时间会变成当前时间。 你可以在定义Trigger时指定Misfire处理策略,例如: ``` Trigger trigger = TriggerBuilder.newTrigger() .withIdentity("myTrigger", "group1") .startAt(startTime) .withSchedule(SimpleScheduleBuilder.simpleSchedule() .withIntervalInMinutes(15) .repeatForever() .withMisfireHandlingInstructionNowWithExistingCount()) .build(); ``` 在这个例子中,使用了MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT策略,如果任务错过了执行时间,会立即重新安排任务,保留原来的执行次数,但是间隔时间会变成当前时间。 另外,你还可以考虑使用Quartz的监控功能来检测定时任务是否正常运行。例如,可以通过Quartz提供的JMX接口,监控Scheduler的状态和Trigger的执行情况,及时发现问题并进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值