如何创建一个自定义注释来有条件地执行java中@Schedule注释的任务

问题描述 投票:0回答:1

之前我使用@Schedule注解来根据一些时间表执行一些方法,例如,

@Schedule(minute ="*/5", hour = "*", persistent = false, info = "Every 5 minute")
public void newMethod() {
     // Some tasks invoked every five minutes
}

现在,仅当某个名为 isLeader 的全局变量为 true 时,我才需要每五分钟调用一次此方法。

显而易见的答案是在 newMethod() 中添加 if 语句,但由于 @Scheduler 注解有很多用法,如果我们选择这种方式,需要做很多更改。

有什么方便的方法吗?

我的想法是构建一个名为 @MyScheduler 的自定义注释,它接受除 @Scheduler 属性之外的名为 isLeader 的额外属性。我尝试去做但失败了。

是否有人对这种有条件地执行某些任务的自定义注释构建有一些经验,请帮助解决这个问题。

如有任何帮助,我们将不胜感激。

java annotations schedule conditional-execution
1个回答
0
投票

注释只是一个标记。您首先需要的是一些处理该注释的工具。

这意味着您的

@MyScheduler
可能已根据您的规范正确实现,但没有任何东西可以处理它。

© www.soinside.com 2019 - 2024. All rights reserved.