【问题标题】:Spring @Scheduled After A Server Restart服务器重启后的 Spring @Scheduled
【发布时间】:2012-02-18 07:06:52
【问题描述】:

我正在我的网络服务器中创建一种机制,计划任务将每 15 分钟执行一次,并在该时间范围内发生任何活动时通知用户。它的工作原理如下:

  1. 使用 @Scheduled 注释 a 并安排每 15 分钟运行一次
  2. 任务运行时,在当前时间的 15 分钟内抓取数据库以查找任何更改

我可以看到几个问题:

  • 如果我必须重新启动服务器并且服务器停机时间超过 15 分钟,我需要回顾超过 15 分钟,以免错过任何活动。
  • 我正在运行多个 tomcat 服务器,只有其中一个需要执行任务。否则,将向用户发送重复的电子邮件。

以前有没有人处理过这个问题?我认为这确实应该是 Web 服务器外部的任务......这将解决发送重复电子邮件的问题,但它不会解决服务器退回问题。

任何关于如何解决的想法将不胜感激!

【问题讨论】:

    标签: spring tomcat scheduled-tasks


    【解决方案1】:

    我会执行以下步骤来执行计划:

    1. 在应用程序启动时查询数据库中的任务(仅限那些没有将脏标志设置为 false 的任务)并安排它。
    2. 在每次运行计划任务时放置一个脏标志以表明该任务已运行

    因为我只会检索那些标记为脏的任务,所以即使在服务器启动时也不应该出现多封电子邮件的问题。

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 2011-04-21
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      • 2020-07-20
      • 2015-12-29
      相关资源
      最近更新 更多