Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring在运行时为特定时间安排任务_Java_Spring_Runtime_Task_Schedule - Fatal编程技术网

Java Spring在运行时为特定时间安排任务

Java Spring在运行时为特定时间安排任务,java,spring,runtime,task,schedule,Java,Spring,Runtime,Task,Schedule,有没有人有过春季任务调度的经验? 我知道您可以使用注释安排固定的时间段或间隔 但我想知道是否有人知道如何在运行时使用动态用户输入来实现这一点。 例如,一个用户计划在下午5:02发送一封电子邮件,是否有一种方法可以使用该时间动态添加一个新任务 收集用户输入并将其作为日期/时间存储在数据库中,例如,我们可以将该值称为NEXT\u SEND\u time 2.用注释邮件发送方法如下,该方法将每隔5秒(5000毫秒)自动调用(通过spring) 3.获取当前时间,并将其与下一次发送时间进行比较 4.如果

有没有人有过春季任务调度的经验? 我知道您可以使用注释安排固定的时间段或间隔 但我想知道是否有人知道如何在运行时使用动态用户输入来实现这一点。 例如,一个用户计划在下午5:02发送一封电子邮件,是否有一种方法可以使用该时间动态添加一个新任务

  • 收集用户输入并将其作为日期/时间存储在数据库中,例如,我们可以将该值称为NEXT\u SEND\u time
  • 2.注释邮件发送方法如下,该方法将每隔5秒(5000毫秒)自动调用(通过spring)

    3.获取当前时间,并将其与下一次发送时间进行比较

    4.如果当前时间大于下一次发送时间,则触发该用户的电子邮件

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

    感谢您的回复,我正在做一些类似的事情,但问题是每5秒检查一次会浪费CPU周期(可能一封电子邮件不会再被安排在3小时内发送,但无论如何,这将每5秒检查一次)。这也是不准确的,因为电子邮件永远不会在指定的时间发送(将有一个~5秒的窗口)这就是您正在寻找的—Spring调度器动态更改cron表达式。