java timer 没有打印_java - 定时任务TimerTask没有被全部成功执行

我这建立了一个TimerManager的类,目的是让系统跑起来之后,执行相应的4个任务。但是,4个任务之中只有两个被成功执行了,他们分别是timer和timer3,后面的两个timer2和timer4并没有被执行到。百思不得其解,所以来sf让各位帮我看看是什么问题,下面是TimerManager的代码:

public class TimerManager {

@Resource

RemoteControlController remoteControlController;

@Resource

ManagementStationService managementStationService;

@Resource

ControllerStatusController controllerStatusController;

// 时间间隔

private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;

public static final long PERIOD_DAY2 = 60 * 60 * 1000;

private static final long PERIOD_DAY3 = 60 * 60 * 1000;

private static final int START_TIME = 1;

private static final int START_TIME2 = 0;

private Logger log = Logger.getLogger("ServerInfo");

public void initTimerManager() {

Calendar calendar = Calendar.getInstance();

Calendar calendar2 = Calendar.getInstance();

/*** 定制每日1:00执行方法 ***/

calendar.set(Calendar.HOUR_OF_DAY, START_TIME);

calendar.set(Calendar.MINUTE, 0);

calendar.set(Calendar.SECOND, 0);

/*** 定制每日0:00执行方法 ***/

calendar2.set(Calendar.HOUR_OF_DAY, START_TIME2);

calendar2.set(Calendar.MINUTE, 0);

calendar2.set(Calendar.SECOND, 0);

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

Date date2 = calendar.getTime();//date2、3重启执行

Date date3 = calendar2.getTime();

// 如果第一次执行定时任务的时间 小于 当前的时间

// 此时要在第一次执行定时任务的时间加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。

if (date.before(new Date())) {

date = this.addDay(date, 1);

}

Timer timer = new Timer();

Timer timer2 = new Timer();

Timer timer3 = new Timer();

Timer timer4 = new Timer();

UpdateDailyEletricPowerTimerTask task = new UpdateDailyEletricPowerTimerTask();

UpdateLampStatusTimerTask task2 = new UpdateLampStatusTimerTask();

UpdateCurrentEletricDataTimerTask task3 = new UpdateCurrentEletricDataTimerTask();

UpdateCurrentControllerStatusTimerTask task4 = new UpdateCurrentControllerStatusTimerTask();

// 安排指定的任务在指定的时间开始进行重复的固定延迟执行。

timer.schedule(task, date, PERIOD_DAY);

timer3.schedule(task3, date3, PERIOD_DAY2);

timer4.schedule(task4, date3, PERIOD_DAY3);//先更新路由状态

timer2.schedule(task2, date2, 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 UpdateCurrentEletricDataTimerTask extends TimerTask {

@Override

public void run() {

try {

// 在这里写你要执行的内容

/**

* 查询实时功率等数据

*/

log.info("-------------UpdateCurrentEletricDataTimerTask正在执行--------------");

remoteControlController.currentElectricDataCollecting();

log.info("-------------UpdateCurrentEletricDataTimerTask执行完毕--------------");

} catch (Exception e) {

log.info("-------------UpdateCurrentEletricDataTimerTask解析信息发生异常--------------");

}

}

}

public class UpdateCurrentControllerStatusTimerTask extends TimerTask {

@Override

public void run() {

try {

// 在这里写你要执行的内容

/**

* 查询实时功率等数据

*/

log.info("-------------UpdateCurrentControllerStatusTimerTask正在执行--------------");

remoteControlController.readRouterStatus();

log.info("-------------UpdateCurrentControllerStatusTimerTask执行完毕--------------");

} catch (Exception e) {

log.info("-------------UpdateCurrentControllerStatusTimerTask解析信息发生异常--------------");

}

}

}

public class UpdateDailyEletricPowerTimerTask extends TimerTask {

@Override

public void run() {

try {

// 在这里写你要执行的内容

/**

* 查询前昨两天日冻结正向有功总电量

*/

log.info("-------------UpdateDailyEletricPowerTimerTask正在执行--------------");

remoteControlController.dailyPositiveElectricPowerCollecting();

log.info("-------------UpdateDailyEletricPowerTimerTask执行完毕--------------");

} catch (Exception e) {

log.info("-------------UpdateDailyEletricPowerTimerTask解析信息发生异常--------------");

}

}

}

public class UpdateLampStatusTimerTask extends TimerTask {

@Override

public void run() {

try {

// 在这里写你要执行的内容

/**

* 更新全部灯具状态

*/

log.info("-------------UpdateLampStatusTimerTask正在执行--------------");

List mlist = managementStationService.getManagementStationList();

int msize = mlist.size();

log.info("**********UpdateLampStatusTimerTask获取的管理所长度为"+msize);

if(msize > 0){

String[] arr = new String[msize];

for(int i = 0; i < msize; i++)

arr[i] = String.valueOf(mlist.get(i).getMid());

boolean realTime = false;

controllerStatusController.UpdateControllerStatus(arr,realTime);

}

log.info("-------------UpdateLampStatusTimerTask执行完毕-------------");

} catch (Exception e) {

log.info("-------------UpdateLampStatusTimerTask解析信息发生异常--------------");

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值