我预定了一段时间后不间断运行的工作。
现在我只想在满足条件的情况下运行此预定作业。该条件在运行时获得,并且不依赖于任何配置参数。
我如何实现这一目标。我知道Spring Boot 4.x提供了这个名为Condition的接口。但不知何故,我的代码不起作用。
在这里,是我的代码......
@Configuration
public class ScheduleTask {
@Scheduled(fixedRateString = "5000")
@Conditional(SchedulerCondition.class)
public void pollDepots() {
System.out.println("Running");
}
}
public class SchedulerCondition implements Condition {
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
return false;
//Here some condition needs to be implemented which is not dependent on the parameters of this method.
}
}
等待你的回复。祝你有个愉快的一天。
您可以将计划任务拉到另一个班级:
public class ScheduledPollDepots {
@Scheduled(fixedRateString = "1000")
public void pollDepots() {
System.out.println("Running");
}
}
然后根据条件创建一个bean:
@Configuration
public class Config {
@Bean
@Conditional(SchedulerCondition.class)
public ScheduledPollDepots pollDepots() {
return new ScheduledPollDepots();
}
}
根据您的日程安排条件:
public class SchedulerCondition implements Condition {
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
return false;
}
}
它应该正常工作。