javascript学习指南_java中一个定时程序

时间:2017-06-07  来源:js教程  阅读:

自己封装一个类

 代码如下

package com.anllin.utils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class ScheduleUtil
{
    private static DateFormat format()
    {
        return new SimpleDateFormat("HH:mm:ss:SSS");
    }

    private static Date parseTime(String time) throws ParseException
    {
        return format().parse(time);
    }

    private static long getOneDayMilliseconds()
    {
        return 24 * 60 * 60 * 1000L;
    }

    private static long getMillisecondsInOneDayBetween(String now, String future) throws ParseException
    {
        Date nowDate = parseTime(now);
        Date futureDate = parseTime(future);
        long nowTime = nowDate.getTime();
        long futureTime = futureDate.getTime();
        if (futureTime > nowTime)
        {
            return futureTime - nowTime;
        }
        else
        {
            return (futureTime + getOneDayMilliseconds()) - nowTime;
        }
    }

    public static void scheduleEveryday(ScheduledThreadPoolExecutor executor, Runnable command,
            String executedEverydayAt) throws ParseException
    {
        long initialDelay = getMillisecondsInOneDayBetween(format().format(new Date()), executedEverydayAt);
        long period = getOneDayMilliseconds();
        executor.scheduleAtFixedRate(command, initialDelay, period, TimeUnit.MILLISECONDS);
    }
}

调用方法

 代码如下

public static void main(String[] args) throws Exception
    {
        ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(5);
        String executedEverydayAt = "12:00:00:000";
        ScheduleUtil.scheduleEveryday(executor, new Runnable(){
            public void run()
            {
                System.out.println("执行业务逻辑");
            }
        }, executedEverydayAt);
    }

javascript学习指南_java中一个定时程序

http://m.bbyears.com/wangyezhizuo/33210.html

推荐访问:java学习路线
相关阅读 猜你喜欢
本类排行 本类最新