java - Spring - 查找@Scheduled的执行时间

标签 java spring triggers scheduled-tasks

我的 bean 中有一个定期执行的方法:

@Scheduled(fixedRate = xx)
public void runPeriodically() {
    // do smt...
}

现在我想找出它上次执行的时间。我怎样才能做到这一点?我读到了Trigger接口(interface),但我不清楚如何使用它来满足我的需要。

最佳答案

我可能会遗漏一些东西,但是一个简单的实例变量不能完成这项工作吗?

private Date lastRun;

@Scheduled(fixedRate = xx)
public void runPeriodically() {
   // do smt...
   lastRun = new Date();
}

对于Trigger接口(interface):@Scheduled不能与Trigger接口(interface)结合使用。至少不是开箱即用的。如果您想使用Trigger,则需要使用TaskScheduler"feed" it with Trigger objects 。例如。

scheduler.schedule(task, new CronTrigger("0 15 9-17 * * MON-FRI"));

CronTrigger 显然实现了 Trigger,因此您在那里拥有所有接口(interface)方法。

关于java - Spring - 查找@Scheduled的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36157854/

相关文章:

java - 为什么我不能直接引用我的 String 枚举?

Java DAO 实现 setObjects

java - Spring 工具套件中的 maven-compiler-plugin :3. 7.0:compile (default-compile)

mysql - 在 MySQL 中创建触发器时,除了 FOR EACH ROW 之外还有其他选择吗?

sql - 一切的 DDL 触发器

java - 从java中找到java.exe位置

java - 运行以下代码时,UnsupportedOperationException 会在 .remove() 方法中抛出

java - Spring/Java 从一个方法调用变量作为变量

java - 如何编写一个函数来过滤 Spring 应用程序事件上的事件

mysql - 无法设置 MySQL 触发器以插入到第二个表中