gpt4 book ai didi

java - 定时 Action 优化

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:13 27 4
gpt4 key购买 nike

我想为系统的每笔交易制定一个程序任务,以预留15分钟的等待时间。如果超过15分钟,程序将改变状态/状态。如果状态在 15 分钟内发生变化,则结束任务。我可以应用更多更好的代码吗?比如Wait/Sleep功能,有没有副作用?

     Date myTime       = new Date();
Calendar cal = Calendar.getInstance();

cal.setTime(myTime);
cal.add(Calendar.MINUTE, 15);

Date endTime = cal.getTime();
Date startTime = new Date();

do {


startTime = new Date() ;

if(checkStatus(_ID) == true )
{
System.out.println("Closing task");
con.close(); // end the task
System.exit(0);
}

}while (endTime.after(startTime)) ;

// if over 15minutes, code goes here

最佳答案

这可能不是您正在寻找的确切解决方案,但也许它可以让您了解如何使用等待/通知方法。

public class Runner {
static Object monitor = new Object();

public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, 15);
Date endTime = cal.getTime();

long fifteenMinutes = 900000;
monitor.wait(fifteenMinutes); // waits to be notified, max 15 mins

if (new Date().after(endTime)) {
// time ran out without a status change
}

System.out.println("Closing task");
con.close(); // end the task
System.exit(0);
}

public void updateStatus() {
// some status logic here
monitor.notify(); // wakes up the monitor that is waiting
}
}

关于java - 定时 Action 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41264851/

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