以下是我目前用于重新安排活动的代码。工作正常:D。 这将基本上比当前时间提前24小时重新安排活动。
我希望定期进行活动(例如,每天重新安排活动的选项),如果可能的话,直到设定日期为止。
有人有任何建议吗?
@Override
public void rescheduleActivity(int id) {
Activity activity = activityRepositoryJPA.findById(id);
LocalDateTime date = LocalDateTime.now();
Timestamp newDate = Timestamp.valueOf(date.plus(24, ChronoUnit.HOURS));
activity.setStartDateTime(newDate);
activityRepositoryJPA.saveAndFlush(activity);
}
答案 0 :(得分:1)
根据我的理解,你试图让这更通用。然后,更好的选择是添加另一个参数Timestamp
,其中包含您的活动的新Timestamp
。
public void rescheduleActivity(int id, Timestamp newDate) {
Activity activity = activityRepositoryJPA.findById(id);
LocalDateTime date = LocalDateTime.now();
activity.setStartDateTime(newDate);
activityRepositoryJPA.saveAndFlush(activity);
}
然后,把它叫做
Timestamp newDate = Timestamp.valueOf(date.plus(24, ChronoUnit.HOURS));
rescheduleActivity (5,newDate);
答案 1 :(得分:1)
我相信,你正在使用Spring Boot。使用Spring Boot,只需将@EnableScheduling注释添加到主应用程序类或任何其他配置类,即可启用调度。
您可以使用@Scheduled注释来安排任务。例如;
@Scheduled(fixedRate = 2000)
public void scheduleTaskWithFixedRate() {
// ...
}
@Scheduled(fixedDelay = 2000)
public void scheduleTaskWithFixedDelay() {
// ...
}
@Scheduled(fixedRate = 2000, initialDelay = 5000)
public void scheduleTaskWithFixedRateAndInitialDelay() {
// ...
}
@Scheduled(cron = "0 * * * * ?")
public void scheduleTaskWithCronExpression() {
// ...
}
您可以根据需要定期或重复安排任务。