Java 在不活动后计划任务(可刷新)
我正在寻找一种在一段时间后安排任务的方法,但是如果发生了什么事情,我需要能够延迟任务。 比如说Java 在不活动后计划任务(可刷新),java,Java,我正在寻找一种在一段时间后安排任务的方法,但是如果发生了什么事情,我需要能够延迟任务。 比如说 myMethod() { some code... new Timer().schedule(new TimerTask(){ @Override public void run(){ LOGGER.info("close connexion"); } },1000
myMethod() {
some code...
new Timer().schedule(new TimerTask(){
@Override
public void run(){
LOGGER.info("close connexion");
}
},1000);
}
如果我在myMethod()中再次出现,我需要在“run”中重新安排任务。
怎么办?解决方案#1
请参阅java 1.5中提供的,它为您提供了方法scheduleWithFixedDelay
——因此它只在完成任务后重新安排任务。另一种在方法末尾重新安排任务的方法(使用schedule
method)
解决方案#2-Spring中存在几乎相同的方法签名,但您可以借助带注释的服务方法来实现。将其移动到单独的方法中并调用该方法?使用
ScheduledExecutorService
而不是TimerTask
。您可以使用从schedule()
返回的ScheduledFuture
取消并重新安排任务,只要您想延迟它。