java - Spring-MVC : Scheduled job did not execute

标签 java spring spring-mvc scheduled-tasks scheduledexecutorservice

我正在开发一个 Spring-MVC 应用程序,其中我使用调度来删除不必要的额外内容。不幸的是,我预定的方法没有触发。谁能告诉我我做错了什么。

这是代码:

@Repository
@Transactional
@EnableScheduling
public class NotificationDAOImpl implements NotificationDAO{

    @Override
    @Scheduled(cron = "0 3 3 * * ?")
    public void deleteNotificationsAutoMagically(){
        session=this.sessionFactory.getCurrentSession();
        long now = System.currentTimeMillis();
        long nowMinus1Week = now - (1000 * 60 * 60 * 24 * 3);
        Timestamp nowMinus1WeekAsTimeStamp = new Timestamp(nowMinus1Week);
        Query query = session.createQuery("delete from NoteLock as nl where nl.timestamp < :limit and nl.read=:true");
        query.setParameter("limit", nowMinus1WeekAsTimeStamp);
        query.executeUpdate();
        session.flush();
    }
}

我知道参数名称适用于 1 周,但我将在 3 天后删除它。我刚刚复制了代码..:D 任何帮助都会很好。谢谢。

最佳答案

该 cron 表达式看起来会在每月 3 日 3 点运行。

如果您想每 3 分钟运行一次,可以使用以下表达式。

0 0/3 * 1/1 * ? *

您可以使用cronmaker用于生成表达式

要验证您创建的 cron 表达式是否有效,请访问此 page

关于java - Spring-MVC : Scheduled job did not execute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187228/

相关文章:

java - 使用iTextpdf删除java中的pdf页面

Spring - 从 JNDI 设置属性值

java - Spring Security - 连续登录2次行为

java - 无法让 Spring MVC 3.2.4 使用 UrlBasedViewResolver 为 jsp 提供服务

java - 与哪些变量运算符 >> 兼容

java - 如何更改此代码,使其仅打印每个素因数的一份副本

java - 使用 XML 配置覆盖 @Autowired 属性注解

java - Weblogic 和递归 JSP 标记

java - 关于@ManyToOne映射时LazyConnection session 超时错误

Spring Data + Mongodb + 查询单值?