相关疑难解决方法(0)

如何禁用 dev 和 stg 环境的 Quartz 调度程序

我有三个环境 dev、stg 和 prod 服务器。我有一个微服务项目,它有石英调度程序,用于以电子邮件形式发送每日报告。石英配置如下:

现在的问题是我希望用于发送每日报告邮件的石英调度程序仅在产品环境服务器上注册和运行。我不希望调度程序在 stg 和开发环境服务器下执行。

我正在使用 AWS ec2 实例作为环境服务器

谁能告诉我该怎么做。我们是否有任何简单的配置可以实现此目的

自动装配SpringBeanJobFactory.java

public final class AutowiringSpringBeanJobFactory extends SpringBeanJobFactory implements ApplicationContextAware {

    private transient AutowireCapableBeanFactory beanFactory;

    @Override
    public void setApplicationContext(final ApplicationContext context) {
        beanFactory = context.getAutowireCapableBeanFactory();
    }

    @Override
    protected Object createJobInstance(final TriggerFiredBundle bundle) throws Exception {
        final Object job = super.createJobInstance(bundle);
        beanFactory.autowireBean(job);
        return job;
    }
}
Run Code Online (Sandbox Code Playgroud)

QuartzConfiguration.java

@Configuration
@ConditionalOnProperty(name = "quartz.enabled")
public class QuartzConfiguration {

    @Autowired
    List<Trigger> listOfTrigger;

    @Bean
    public JobFactory jobFactory(ApplicationContext applicationContext) {
        AutowiringSpringBeanJobFactory jobFactory = new AutowiringSpringBeanJobFactory(); …
Run Code Online (Sandbox Code Playgroud)

java quartz-scheduler spring-boot

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×1

quartz-scheduler ×1

spring-boot ×1