当前位置: 首页 > 知识库问答 >
问题:

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

景正文
2023-03-14

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

共有1个答案

籍光熙
2023-03-14
  1. 收集用户输入并将其作为日期/时间存储在数据库中,例如,我们可以将该值称为NEXT_SEND_TIME。

2.用@Scheduled注释邮件发送方法,如下所示,此方法将每隔5秒(5000毫秒)自动调用(由spring调用)。

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

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

@Scheduled(fixedDelay=5000)
public void sendMail() {
    // do step 3 & 4 here
}
 类似资料:
  • 问题内容: 我的Java Scheduler有一个问题,我的实际需要是我必须在特定时间启动我的进程,并且我将在特定时间停止,我可以在特定时间启动我的进程,但是我不能在特定时间停止我的进程,如何指定进程在调度程序中运行多长时间(在这里我不会放),任何人对此都有建议。 问题答案: 您可以使用带有2个计划的计划,一个计划运行任务,另一个计划终止任务-参见下面的简化示例:

  • 问题内容: 我研究了,但是示例仅涉及使其重现。我正在寻找一种类似的功能,例如说“每个星期一的凌晨1点执行此任务”的功能。 问题答案: 感谢Patrick Altman,最近发布的1.0.3版现在支持此功能。 例:

  • 问题内容: 我研究了,但是示例仅涉及使其重现。我正在寻找一种类似的功能,例如说“每个星期一的凌晨1点执行此任务”的功能。 问题答案: 感谢Patrick Altman,最近发布的1.0.3版现在支持此功能。 例: 请参阅更改日志以获取更多信息: http://celeryproject.org/docs/changelog.html

  • WorkManager是一个库,用于对满足其约束后保证执行的工作进行排队。 因此,在查看了Constraints类之后,我还没有找到任何函数来为工作添加时间约束。例如,我希望在早上8:00AM开始执行一个工作(该工作可以是OneTimeWorkRequest或PerioadWorkRequest两种类型中的任何一种)。如何添加约束以使用WorkManager调度此工作。

  • 问题内容: 我需要帮助在特定时间(如下午2点)在服务器上运行Java程序(以索引新文件)。 有人告诉我Java有一些叫做Job的东西,但我不知道该如何使用。我尝试了这个: 但是有了这个程序仍在运行。 如何在指定时间运行程序? 问题答案: 有一个名为Quartz的API ,您的程序可以在其中调度“作业”,并在该时刻运行它。 在给出示例之前,请尝试使用此链接。 编辑:首先,您必须创建一个实现org.q

  • 问题内容: 我有一个Web应用程序,每小时与中央数据库同步四次。该过程通常需要2分钟。我想将此进程作为线程在X:55,X:10,X:25和X:40运行,以便用户知道在X:00,X:15,X:30和X:45他们有数据库的干净副本。这只是管理期望。我已经通过了执行器,但是调度是通过它完成的,我认为不能保证以小时为单位的实际运行时间。我可以使用第一个延迟来启动,以便第一个接近启动时间和每15分钟的计划,

  • 问题内容: 我一直在寻找有关如何实现功能的示例,该功能使您可以在Go中的特定时间执行任务,但是我什么也找不到。 我自己实现了自己,并在答案中分享了它,以便其他人可以为自己的实现提供参考。 问题答案: 这是一个常规实现,可让您设置: 间隔期 小时打勾 分钟打勾 tick秒 更新:( 内存泄漏已修复)

  • 我在context.xml文件中定义了一个Spring调度任务,它每分钟运行一次。该任务调用postgres存储过程。存储过程运行时可以持续一分钟以上。如果当前运行没有完成,spring框架会调用相同的调度程序吗?谢谢,