Java 在方法启动时启动固定的延迟调度程序,并在完成时停止
我有一个SpringBootWeb应用程序 我想在方法启动时启动fixedDelayed计划作业。并在Java 在方法启动时启动固定的延迟调度程序,并在完成时停止,java,spring,spring-boot,quartz-scheduler,spring-scheduled,Java,Spring,Spring Boot,Quartz Scheduler,Spring Scheduled,我有一个SpringBootWeb应用程序 我想在方法启动时启动fixedDelayed计划作业。并在someMethod方法完成时停止计划作业。我读了文档,但不明白怎么读。我想在somethod仍在工作的情况下,每隔30秒向db发送一次数据 这是伪代码。有人有主意吗 public void someMethod() { //Start scheduledLogger() to work every 30 seconds //... //Do something ta
someMethod
方法完成时停止计划作业。我读了文档,但不明白怎么读。我想在somethod
仍在工作的情况下,每隔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());
}
这可能对你有帮助