- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有没有办法根据应用程序属性使@EnableScheduling 成为条件?也可以根据属性禁用 Controller 吗?
我想要实现的是让相同的 spring boot 应用程序用于处理 Web 请求(但不在同一台机器上运行计划任务),并在后端服务器上安装相同的应用程序以仅运行计划任务。
我的应用看起来像这样
@SpringBootApplication
@EnableScheduling
@EnableTransactionManagement
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
一个示例计划作业如下所示
@Component
public class MyTask {
@Scheduled(fixedRate = 60000)
public void doSomeBackendJob() {
/* job implementation here */
}
}
最佳答案
我解决了这个问题,以下是我所做的以供将来引用:
-
@Configuration
public class Scheduler {
@Conditional(SchedulerCondition.class)
@Bean(name = TaskManagementConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME)
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
public ScheduledAnnotationBeanPostProcessor scheduledAnnotationProcessor() {
return new ScheduledAnnotationBeanPostProcessor();
}
}
和条件类
public class SchedulerCondition implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return Boolean.valueOf(context.getEnvironment().getProperty("com.myapp.config.scheduler.enabled"));
}
}
此外,要在后端服务器上禁用 Web 服务器,只需将以下内容添加到 application.properties 文件中:
spring.main.web_environment=false
关于java - Spring Boot @EnableScheduling 有条件地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39182633/
我正在按照此示例在示例项目中创建计划任务:https://spring.io/guides/gs/scheduling-tasks 它说,@EnableScheduling ensures that
有没有办法根据应用程序属性使@EnableScheduling 成为条件?也可以根据属性禁用 Controller 吗? 我想要实现的是让相同的 spring boot 应用程序用于处理 Web 请求
当我运行单元测试时,它会调用我的计划任务。我想防止这种行为,这是由于我的主应用配置中有 @EnableScheduling 造成的。 如何在我的单元测试中禁用它? 我遇到过这个question/ans
我创建了一个类,其中的方法应每 5 秒运行一次。它们看起来像这样: @Configuration @EnableScheduling public class MyClass { @Sched
我想在 Spring 测试中禁用 @Schedule,但我找不到办法。 我尝试为测试环境创建不同的配置类,但任务仍然被触发。这是配置: @Configuration @EnableTransactio
我一直在研究如何使用 Java 8 和 spring 在运行时更改作业的频率。 This question非常有用,但并没有完全解决我的问题。 我现在可以配置下一次执行作业的日期。但是如果将延迟设置为
我关注了very simple examples在线在 Spring 中设置 cron 作业,但我每次都在 Tomcat 启动日志中收到此错误: 2015-05-25 00:32:58 DEBUG S
因为“只有返回无效的方法可以用@Scheduled注释”,当我使用@Bean配置时如何使用Spring Batch和Spring Scheduler Task的xml配置?您可以在下面找到我的完整配置
我在小枝应用程序中工作 其中有一个类scheduledJob,具有以下注释 @Configuration @EnableScheduling @Component public class Sched
我是一名优秀的程序员,十分优秀!