Class SchedulerConfig
applicationContext-schedule.xml.
Profile-gated on scheduler — only the production node that runs scheduled
maintenance jobs activates this profile (see SpringContextUtils which adds the
profile when the quartzOn setting is true). On other nodes (CLI, REST, dev), the
profile is inactive, so this class and all of its @Bean methods are skipped and
none of the Quartz machinery is wired.
Each trigger preserves the bean id, cron expression, and job-detail wiring from the legacy
XML so external consumers (Quartz job-store records, log scrapes, runbooks) keep working.
Bean references such as groupAgentSecurityContext live in
applicationContext-dataSource.xml and are injected by qualifier here.
Note: SecureMethodInvokingJobDetailFactoryBean requires its targetObject
to be a real bean, so every @Qualifier below names a bean that must exist for this
context to start. Those names come from ubic.gemma.core.context.BeanNameGenerator,
which the root @ComponentScan installs as its nameGenerator and which strips
a trailing Impl — IndexerServiceImpl registers as indexerService,
not indexerServiceImpl. Dropping that generator would break these qualifiers at
runtime rather than at compile time.
Annotation-driven scheduling (@Scheduled) is NOT enabled here — it moved to
AnnotationDrivenSchedulingConfig, which also covers the production profile.
Gating it on scheduler meant every @Scheduled method was dormant on
production nodes, which run production without scheduler. This class is now
only about the Quartz triggers.
- Author:
- keshav (original XML)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.scheduling.quartz.CronTriggerFactoryBeanarrayDesignReportTrigger(ArrayDesignReportService arrayDesignReportService, org.springframework.security.core.context.SecurityContext securityContext) Every first of the month at 01:30.org.springframework.scheduling.quartz.JobDetailFactoryBeanbatchInfoJobDetail(ExpressionExperimentService expressionExperimentService, ExpressionExperimentReportService expressionExperimentReportService, AuditEventService auditEventService, org.springframework.security.core.context.SecurityContext securityContext) org.springframework.scheduling.quartz.CronTriggerFactoryBeanbatchInfoTrigger(org.quartz.JobDetail jobDetail) Every day at 00:30.org.springframework.scheduling.quartz.JobDetailFactoryBeanee2adUpdateJobDetail(TableMaintenanceUtil tableMaintenanceUtil, org.springframework.security.core.context.SecurityContext securityContext) org.springframework.scheduling.quartz.CronTriggerFactoryBeanee2adUpdateTrigger(org.quartz.JobDetail jobDetail) Every working day at 19:30.org.springframework.scheduling.quartz.JobDetailFactoryBeanee2cExperimentalDesignUpdateJobDetail(TableMaintenanceUtil tableMaintenanceUtil, org.springframework.security.core.context.SecurityContext securityContext) org.springframework.scheduling.quartz.CronTriggerFactoryBeanee2cExperimentalDesignUpdateTrigger(org.quartz.JobDetail jobDetail) Every working day at 19:20.org.springframework.scheduling.quartz.JobDetailFactoryBeanee2cExperimentUpdateJobDetail(TableMaintenanceUtil tableMaintenanceUtil, org.springframework.security.core.context.SecurityContext securityContext) org.springframework.scheduling.quartz.CronTriggerFactoryBeanee2cExperimentUpdateTrigger(org.quartz.JobDetail jobDetail) Every working day at 19:00.org.springframework.scheduling.quartz.JobDetailFactoryBeanee2cSampleUpdateJobDetail(TableMaintenanceUtil tableMaintenanceUtil, org.springframework.security.core.context.SecurityContext securityContext) org.springframework.scheduling.quartz.CronTriggerFactoryBeanee2cSampleUpdateTrigger(org.quartz.JobDetail jobDetail) Every working day at 19:10.org.springframework.scheduling.quartz.CronTriggerFactoryBeanexpressionExperimentReportTrigger(ExpressionExperimentReportService expressionExperimentReportService, org.springframework.security.core.context.SecurityContext securityContext) Every first of the month at 00:15.org.springframework.scheduling.quartz.CronTriggerFactoryBeangene2CsUpdateTrigger(TableMaintenanceUtil tableMaintenanceUtil, org.springframework.security.core.context.SecurityContext securityContext) Every day at 00:40.org.springframework.scheduling.quartz.CronTriggerFactoryBeanindexExperimentsTrigger(Object indexerService, org.springframework.security.core.context.SecurityContext securityContext) Every working day at 23:00.org.springframework.scheduling.quartz.SchedulerFactoryBeanschedulerFactoryBean(org.quartz.Trigger arrayDesignReportTrigger, org.quartz.Trigger expressionExperimentReportTrigger, org.quartz.Trigger gene2CsUpdateTrigger, org.quartz.Trigger batchInfoTrigger, org.quartz.Trigger ee2cExperimentUpdateTrigger, org.quartz.Trigger ee2cSampleUpdateTrigger, org.quartz.Trigger ee2cExperimentalDesignUpdateTrigger, org.quartz.Trigger ee2adUpdateTrigger, org.quartz.Trigger indexExperimentsTrigger) Main Quartz entry point.
-
Constructor Details
-
SchedulerConfig
public SchedulerConfig()
-
-
Method Details
-
schedulerFactoryBean
@Bean public org.springframework.scheduling.quartz.SchedulerFactoryBean schedulerFactoryBean(@Qualifier("arrayDesignReportTrigger") org.quartz.Trigger arrayDesignReportTrigger, @Qualifier("expressionExperimentReportTrigger") org.quartz.Trigger expressionExperimentReportTrigger, @Qualifier("gene2CsUpdateTrigger") org.quartz.Trigger gene2CsUpdateTrigger, @Qualifier("batchInfoTrigger") org.quartz.Trigger batchInfoTrigger, @Qualifier("ee2cExperimentUpdateTrigger") org.quartz.Trigger ee2cExperimentUpdateTrigger, @Qualifier("ee2cSampleUpdateTrigger") org.quartz.Trigger ee2cSampleUpdateTrigger, @Qualifier("ee2cExperimentalDesignUpdateTrigger") org.quartz.Trigger ee2cExperimentalDesignUpdateTrigger, @Qualifier("ee2adUpdateTrigger") org.quartz.Trigger ee2adUpdateTrigger, @Qualifier("indexExperimentsTrigger") org.quartz.Trigger indexExperimentsTrigger) Main Quartz entry point. The trigger list mirrors exactly what the legacy XML wired — the commented-outviewTriggerandmonitorSpaceTriggerfrom the XML remain out of scope here. -
batchInfoTrigger
@Bean(name="batchInfoTrigger") public org.springframework.scheduling.quartz.CronTriggerFactoryBean batchInfoTrigger(@Qualifier("batchInfoJobDetail") org.quartz.JobDetail jobDetail) Every day at 00:30. -
batchInfoJobDetail
@Bean(name="batchInfoJobDetail") public org.springframework.scheduling.quartz.JobDetailFactoryBean batchInfoJobDetail(ExpressionExperimentService expressionExperimentService, ExpressionExperimentReportService expressionExperimentReportService, AuditEventService auditEventService, @Qualifier("groupAgentSecurityContext") org.springframework.security.core.context.SecurityContext securityContext) -
expressionExperimentReportTrigger
@Bean(name="expressionExperimentReportTrigger") public org.springframework.scheduling.quartz.CronTriggerFactoryBean expressionExperimentReportTrigger(ExpressionExperimentReportService expressionExperimentReportService, @Qualifier("groupAgentSecurityContext") org.springframework.security.core.context.SecurityContext securityContext) Every first of the month at 00:15. -
arrayDesignReportTrigger
@Bean(name="arrayDesignReportTrigger") public org.springframework.scheduling.quartz.CronTriggerFactoryBean arrayDesignReportTrigger(ArrayDesignReportService arrayDesignReportService, @Qualifier("groupAgentSecurityContext") org.springframework.security.core.context.SecurityContext securityContext) Every first of the month at 01:30. -
gene2CsUpdateTrigger
@Bean(name="gene2CsUpdateTrigger") public org.springframework.scheduling.quartz.CronTriggerFactoryBean gene2CsUpdateTrigger(TableMaintenanceUtil tableMaintenanceUtil, @Qualifier("groupAgentSecurityContext") org.springframework.security.core.context.SecurityContext securityContext) Every day at 00:40. -
ee2cExperimentUpdateTrigger
@Bean(name="ee2cExperimentUpdateTrigger") public org.springframework.scheduling.quartz.CronTriggerFactoryBean ee2cExperimentUpdateTrigger(@Qualifier("ee2cExperimentUpdateJobDetail") org.quartz.JobDetail jobDetail) Every working day at 19:00. -
ee2cExperimentUpdateJobDetail
@Bean(name="ee2cExperimentUpdateJobDetail") public org.springframework.scheduling.quartz.JobDetailFactoryBean ee2cExperimentUpdateJobDetail(TableMaintenanceUtil tableMaintenanceUtil, @Qualifier("groupAgentSecurityContext") org.springframework.security.core.context.SecurityContext securityContext) -
ee2cSampleUpdateTrigger
@Bean(name="ee2cSampleUpdateTrigger") public org.springframework.scheduling.quartz.CronTriggerFactoryBean ee2cSampleUpdateTrigger(@Qualifier("ee2cSampleUpdateJobDetail") org.quartz.JobDetail jobDetail) Every working day at 19:10. -
ee2cSampleUpdateJobDetail
@Bean(name="ee2cSampleUpdateJobDetail") public org.springframework.scheduling.quartz.JobDetailFactoryBean ee2cSampleUpdateJobDetail(TableMaintenanceUtil tableMaintenanceUtil, @Qualifier("groupAgentSecurityContext") org.springframework.security.core.context.SecurityContext securityContext) -
ee2cExperimentalDesignUpdateTrigger
@Bean(name="ee2cExperimentalDesignUpdateTrigger") public org.springframework.scheduling.quartz.CronTriggerFactoryBean ee2cExperimentalDesignUpdateTrigger(@Qualifier("ee2cExperimentalDesignUpdateJobDetail") org.quartz.JobDetail jobDetail) Every working day at 19:20. -
ee2cExperimentalDesignUpdateJobDetail
@Bean(name="ee2cExperimentalDesignUpdateJobDetail") public org.springframework.scheduling.quartz.JobDetailFactoryBean ee2cExperimentalDesignUpdateJobDetail(TableMaintenanceUtil tableMaintenanceUtil, @Qualifier("groupAgentSecurityContext") org.springframework.security.core.context.SecurityContext securityContext) -
ee2adUpdateTrigger
@Bean(name="ee2adUpdateTrigger") public org.springframework.scheduling.quartz.CronTriggerFactoryBean ee2adUpdateTrigger(@Qualifier("ee2adUpdateJobDetail") org.quartz.JobDetail jobDetail) Every working day at 19:30. -
ee2adUpdateJobDetail
@Bean(name="ee2adUpdateJobDetail") public org.springframework.scheduling.quartz.JobDetailFactoryBean ee2adUpdateJobDetail(TableMaintenanceUtil tableMaintenanceUtil, @Qualifier("groupAgentSecurityContext") org.springframework.security.core.context.SecurityContext securityContext) -
indexExperimentsTrigger
@Bean(name="indexExperimentsTrigger") public org.springframework.scheduling.quartz.CronTriggerFactoryBean indexExperimentsTrigger(@Qualifier("indexerService") Object indexerService, @Qualifier("groupAgentSecurityContext") org.springframework.security.core.context.SecurityContext securityContext) Every working day at 23:00. TheindexerServicebean isIndexerServiceImpl, named by the scan'sBeanNameGenerator(see the class comment). The legacy XML referenced it by the same id, so this is a verbatim port.
-