gpt4 book ai didi

java - 日程管理

转载 作者:行者123 更新时间:2023-12-01 05:49:24 25 4
gpt4 key购买 nike

经过一番尝试和错误后,我终于让它按照我想要的方式工作。

但现在我想听听你的建议,让代码更具可读性和简单性,似乎制作了很多不必要的代码来归档我想要的内容。

这基本上做的是,如果您在计划任务应该运行的时间打开服务器应用程序,它将启动该任务并让它运行到它应该启动时剩余的时间,否则它将被计划在应该运行的时间运行。

因此,如果计划时间为 13:00:00,应运行 120 分钟,而您在 13:30 启动应用程序,它将运行 90 分钟。如果您在该时间之后启动,则通常会安排在第二天的 13:00:00。

        Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);

long start_time = calendar.getTimeInMillis() - System.currentTimeMillis();

if (start_time < 0)
{
long minutes = (start_time*-1) / (60 * 1000);
if (minutes > 0 && minutes < 120)
{
runTimeLeft = 120 - minutes;
ThreadPoolManager.getInstance().schedule(new Runnable()
{
public void run()
{
myTask();
}
}, 0);
}
else
runTimeLeft = 0;

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, hour+24);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);

start_time = calendar.getTimeInMillis() - System.currentTimeMillis();
}

ThreadPoolManager.getInstance().scheduleAtFixedRate(new Runnable()
{
public void run()
{
myTask();
}
}, start_time, 24 * 60 * 60 * 1000);

所以我现在的问题是我可以对上面的代码进行哪些改进?

最佳答案

不要单独使用java.util.Timer,而是尝试将其与TimerTask一起使用。 IBM 有一篇关于此的好文章。

看看这个链接:http://www.ibm.com/developerworks/java/library/j-schedule.html

该代码也是共享的,并且似乎适用于琐碎的日常工作。

关于java - 日程管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5099711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com