我有一个 Spring 控制器,用于向父项添加不同类型的元素,当我更新或添加新项时,我需要更新其父项的最后修改日期。我的问题是我们多次调用此更新最后修改日期服务,我想避免这种情况。有没有更好或更优雅的方法来解决这个问题,然后是 timers(Timer, TimerTask) 或 ScheduledFuture, ScheduledThreadPoolExecutor?
Timer updateLastModifiedDateTimer = timers.get(parentkey);
if (updateLastModifiedDateTimer != null) {
updateLastModifiedDateTimer.cancel();
}
TimerTask updateLastModifiedDateTask = new TimerTask() {
public void run() {
getPresentationDAO().updateLastModifiedDate(owner, parentkey, System.currentTimeMillis());
}
};
updateLastModifiedDateTimer = new Timer(true);
updateLastModifiedDateTimer.schedule(updateLastModifiedDateTask, updateDelay);
timers.put(parentkey, updateLastModifiedDateTimer);
我用 ScheduledFuture 和 ScheduledThreadPoolExecutor 实现了类似的东西。