gpt4 book ai didi

java - java中不使用定时器,仅在时间到时才执行方法

转载 作者:行者123 更新时间:2023-12-02 12:16:09 26 4
gpt4 key购买 nike

我想在类中执行一个方法,比如每天只执行一次。如果一天内已经执行,则返回或执行该方法。

我想知道如果我退出代码会发生什么,它会在后台运行吗?

最佳答案

假设您已经知道如何安排任务run daily诀窍是知道任务是否已经在当天运行,而无需时间表提示。

为了实现所需的行为,您需要保存最近一次运行的时间戳(作为 java 环境中的变量或磁盘上的文件),并在更新之前进行检查它并执行该函数。

一些伪代码:

Static bool timeManager(){
CurrentTime = getCurrentTime()
TimeStamp = getTimeStamp()
if(CurrentTime - TimeStamp > 1day-afewMinutes){
UpdateTimeStamp(CurrentTime)
return true
}else{
return false
}
}
void jobWrapper(){
if timeManager(){
doTheJob()
}else{
log("Skipping job at "+currentTime+" because job ran "+lastTime)
}
}

编辑:回滚指出了竞争条件,因此我将时间管理器放在静态方法中。另外,我意识到四舍五入到秒可能会让你烦恼,所以我想我应该从一整天中减去几分钟,以避免由于四舍五入而以 24 小时为间隔安排的任务相互阻塞...

关于java - java中不使用定时器,仅在时间到时才执行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46168086/

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