NutzCN Logo
问答 关于定时器,频率设置5分钟,但是下次启动没到5分钟就启动了的问题
发布于 2663天前 作者 一叶孤舟 1895 次浏览 复制 上一个帖子 下一个帖子
标签:

你好:
一个后台程序,用下面定时启动隔5分钟启动一次,偶尔暴露一个问题
Tasks.scheduleAtFixedRate((Runnable) ioc.get(clz), statTime, times,
frequency);
开始时间我标准化了整5分钟的时间格式,比如上次启动时间为2017-09-07 00:05:00,而下次启动时间为2017-09-07 00:09:59就启动了,
程序重启后就正常了。这用了nutz这么久暴露了两次,不知道什么原因。

1 回复

最终调用的是这个, 看上去没啥问题

    public static void scheduleAtFixedRate(final Runnable task, Date startTime, final long period, final TimeUnit unit) {
        final Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                taskScheduler.scheduleAtFixedRate(task, 0, period, unit);
                timer.cancel();
                timerList.remove(timer);
            }
        }, startTime);
        timerList.add(timer);
    }

添加回复
请先登陆
回到顶部