我需要安排在触发器触发时运行的任务。我使用ManagedScheduledExecutorService
来安排任务。
ScheduledFuture<?> schedule(Runnable command,Trigger trigger)
用户将安排多项任务,例如:
user2想要重新安排每天上午10点运行的任务。现在我想取消上一个任务并创建一个新任务。将ScheduledFuture
引用存储在内存中并不起作用,因为我们正在使用群集环境。我无法将ScheduledFuture
的引用存储在数据库中,因为scheduledFuture
未被序列化。
如何存储scheduledFuture
参考或有没有办法重新安排任务?
ScheduledFuture future = managedScheduledExecutorService.schedule(task, triggerimpl);
答案 0 :(得分:0)
假设你有一个方法 SCHEDULE
class Scheduler {
private ScheduledFuture future;
public void schedule (){
future = managedScheduledExecutorService.schedule(task, triggerimpl);
}
}
triggerimpl
定义了晚上10点的计划任务
您可以将重新安排方法写为
**重新开始**
class Scheduler {
private ScheduledFuture future;
public void schedule (){
future = managedScheduledExecutorService.schedule(task, triggerimpl);
}
public void reschedule (){
future.cancel(false);
future = managedScheduledExecutorService.schedule(task, newtriggerimpl);
}
}
newtriggerimpl
定义了计划@ 10 AM