计划任务未在Spring中按时运行

时间:2017-05-26 19:11:45

标签: spring cron

我使用@Schedule让系统在不同的时间运行任务。但最近,我发现一些任务正在被推迟。例如,有一项任务应该在每天早上5点运行,现在有时在中午甚至更晚的下午运行。有任何想法吗?感谢。

计划程序服务:

@Service
public class DailyReminderTasks extends AbstractTask {

private final static Logger logger = LoggerFactory
        .getLogger(DailyReminderTasks.class);

private SendAuditReminderNotificationSerivce sendAuditReminderNotificationSerivce;

@Scheduled(cron = "0 0 5  * * ?")
// run at 5:00 am every day
public void sendAuditReponseReminderLetter() {      
    try {
        sendAuditReminderNotificationSerivce.sendAuditReponseReminder();
    } catch (Exception ex) {
        logger.error("failed to send reminder: ", ex);
    }
}

public SendAuditReminderNotificationSerivce getSendAuditReminderNotificationSerivce() {
    return sendAuditReminderNotificationSerivce;
}

@Autowired(required = true)
public void setSendAuditReminderNotificationSerivce(
        SendAuditReminderNotificationSerivce sendAuditReminderNotificationSerivce) {
    this.sendAuditReminderNotificationSerivce = sendAuditReminderNotificationSerivce;
}

1 个答案:

答案 0 :(得分:0)

根据此处提供的信息,最可能的解释是后台线程池处理任务调度没有跟上,因此在任务放入队列的时间和执行时间之间,可以通过许多小时。