我在 Spring 的 Service 组件中有这个结构:
@Autowired
PointController controller;
@Autowired
ParametroService parametroService;
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
List<IntRaptMec> allPointments = getNotValidated();
for(IntRaptMec pointment : allPointments) {
controller.validate(pointment.getIdTemp());
}
}
};
public void doValidationsTask() {
Parametro parametroTempo = parametroService.getParametro("1", "ATRC_MEC", "TEMPO_VERIFICACAO");
timer.scheduleAtFixedRate(
timerTask,
Integer.parseInt(parametroTempo.getValor()) * oneMinute,
Integer.parseInt(parametroTempo.getValor()) * oneMinute
);
}
我想要的只是在 Spring 应用程序完全初始化之后,它将执行 TimerTask 中的 run() 方法。然后,在从 parametroService.getParametro() 获得的给定时间(以分钟为单位)之后,再次执行此任务。
我试图从文档中遵循此链接:https : //docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#scheduling-annotation-support
但似乎我无法动态设置将执行特定任务的延迟时间
holdtom
当年话下
相关分类