Spring Schedule任务在运行时的特定时间

时间:2017-03-24 01:14:19

标签: java spring runtime task schedule

有没有人对Spring的任务调度有任何经验? 我了解您可以使用注释安排固定的时间段或间隔 https://spring.io/guides/gs/scheduling-tasks/ 但我想知道是否有人知道如何在运行时使用动态用户输入来做到这一点。 例如,用户安排在下午5:02准确发送电子邮件,是否有办法使用该动作作为时间动态添加新任务?

1 个答案:

答案 0 :(得分:1)

  1. 收集用户输入并将其存储在数据库中作为日期/时间,例如,我们可以将该值称为 NEXT_SEND_TIME
  2. 2. 注释邮件发送方法 @Scheduled ,如下所示,此方法将被称为自动(按春季) 每5秒(5000毫秒)。

    3.获取当前时间与NEXT_SEND_TIME进行比较。

    4.如果当前时间大于 NEXT_SEND_TIME,则触发该用户的电子邮件。

    @Scheduled(fixedDelay=5000)
    public void sendMail() {
        // do step 3 & 4 here
    }