我有三个环境 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)