gpt4 book ai didi

java - 当方法开始时启动固定延迟调度程序并在完成时停止

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:30 24 4
gpt4 key购买 nike

我有一个 Spring Boot Web 应用程序。

我想在方法启动时启动一个 fixedDelayed 计划作业。并在 someMethod 方法完成时停止预定作业。我阅读了文档,但我不明白如何。我想在 someMethod 仍在工作时每 30 秒写一些东西到 db。

这是伪代码。有人有想法吗?

public void someMethod() {

//Start scheduledLogger() to work every 30 seconds

//...
//Do something taking long time

//Stop scheduledLogger() job
}

private void scheduledLogger() {
//Log to database
}

最佳答案

你可以这样做:

public void someMethod() 
{
//Start scheduledLogger() to work every 30 seconds
TimerTask tasknew = new TimerTask(){
@Override
public void run()
{
scheduledLogger();

}
};
Timer timer = new Timer();

// scheduling the task
timer.scheduleAtFixedRate(tasknew, new Date(), 3000);

//Do something taking long time
try
{
Thread.sleep(20000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
//Stop scheduledLogger() job
// terminating the timer
timer.cancel();
}

private void scheduledLogger() {
//Log to database
System.out.println("Log to database at "+new Date());
}

关于java - 当方法开始时启动固定延迟调度程序并在完成时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30477114/

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