@Configuration @EnableConfigurationProperties(value={AgentCleanupProperties.class,ClusterCheckerProperties.class,DatabaseCleanupProperties.class,LeadershipProperties.class,UserMetricsProperties.class,ZookeeperLeadershipProperties.class}) @AutoConfigureAfter(value={TasksAutoConfiguration.class,org.springframework.cloud.zookeeper.ZookeeperAutoConfiguration.class}) public class LeaderAutoConfiguration extends java.lang.Object
Constructor and Description |
---|
LeaderAutoConfiguration() |
Modifier and Type | Method and Description |
---|---|
AgentJobCleanupTask |
agentJobCleanupTask(JobSearchService jobSearchService,
JobPersistenceService jobPersistenceService,
AgentCleanupProperties agentCleanupProperties,
io.micrometer.core.instrument.MeterRegistry registry)
If required, get a
AgentJobCleanupTask instance for use. |
ClusterCheckerTask |
clusterCheckerTask(GenieHostInfo genieHostInfo,
ClusterCheckerProperties properties,
JobSearchService jobSearchService,
JobPersistenceService jobPersistenceService,
AgentConnectionPersistenceService agentConnectionPersistenceService,
org.springframework.web.client.RestTemplate restTemplate,
org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties webEndpointProperties,
io.micrometer.core.instrument.MeterRegistry registry)
Create a
ClusterCheckerTask if one hasn't been supplied. |
DatabaseCleanupTask |
databaseCleanupTask(DatabaseCleanupProperties cleanupProperties,
JobPersistenceService jobPersistenceService,
ClusterPersistenceService clusterPersistenceService,
FilePersistenceService filePersistenceService,
TagPersistenceService tagPersistenceService,
io.micrometer.core.instrument.MeterRegistry registry)
Create a
DatabaseCleanupTask if one is required. |
org.springframework.integration.zookeeper.config.LeaderInitiatorFactoryBean |
leaderInitiatorFactory(org.apache.curator.framework.CuratorFramework client,
ZookeeperLeadershipProperties zookeeperLeadershipProperties)
The leadership initialization factory bean which will create a LeaderInitiator to kick off the leader election
process within this node for the cluster if Zookeeper is configured.
|
LeadershipTasksCoordinator |
leadershipTasksCoordinator(org.springframework.scheduling.TaskScheduler taskScheduler,
java.util.Set<LeadershipTask> tasks)
Create the LeadershipTasksCoordination bean used to start and stop all leadership related tasks based on
whether leadership is granted or revoked.
|
LocalLeader |
localLeader(GenieEventBus genieEventBus,
LeadershipProperties leadershipProperties)
If Zookeeper isn't available and this node is forced to be the leader create the local leader
bean which will fire appropriate events.
|
UserMetricsTask |
userMetricsTask(io.micrometer.core.instrument.MeterRegistry registry,
JobSearchService jobSearchService,
UserMetricsProperties userMetricsProperties)
If required get a
UserMetricsTask instance for use. |
@Bean @ConditionalOnMissingBean(value=LeadershipTasksCoordinator.class) public LeadershipTasksCoordinator leadershipTasksCoordinator(@Qualifier(value="genieTaskScheduler") org.springframework.scheduling.TaskScheduler taskScheduler, java.util.Set<LeadershipTask> tasks)
taskScheduler
- The task scheduler to use for scheduling leadership taskstasks
- The leadership tasks to schedule@Bean @ConditionalOnBean(value=org.apache.curator.framework.CuratorFramework.class) @ConditionalOnMissingBean(value=org.springframework.integration.zookeeper.config.LeaderInitiatorFactoryBean.class) public org.springframework.integration.zookeeper.config.LeaderInitiatorFactoryBean leaderInitiatorFactory(org.apache.curator.framework.CuratorFramework client, ZookeeperLeadershipProperties zookeeperLeadershipProperties)
client
- The curator framework client to usezookeeperLeadershipProperties
- The Zookeeper properties to use@Bean @ConditionalOnMissingBean(value={org.apache.curator.framework.CuratorFramework.class,LocalLeader.class}) public LocalLeader localLeader(GenieEventBus genieEventBus, LeadershipProperties leadershipProperties)
genieEventBus
- The genie event bus implementation to useleadershipProperties
- Properties related to static leadership configuration for the Genie cluster@Bean @ConditionalOnMissingBean(value=ClusterCheckerTask.class) public ClusterCheckerTask clusterCheckerTask(GenieHostInfo genieHostInfo, ClusterCheckerProperties properties, JobSearchService jobSearchService, JobPersistenceService jobPersistenceService, AgentConnectionPersistenceService agentConnectionPersistenceService, @Qualifier(value="genieRestTemplate") org.springframework.web.client.RestTemplate restTemplate, org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties webEndpointProperties, io.micrometer.core.instrument.MeterRegistry registry)
ClusterCheckerTask
if one hasn't been supplied.genieHostInfo
- Information about the host this Genie process is running onproperties
- The properties to use to configure the taskjobSearchService
- The job search service to usejobPersistenceService
- The job persistence service to useagentConnectionPersistenceService
- The agent connection persistence servicerestTemplate
- The rest template for http callswebEndpointProperties
- The properties where Spring actuator is runningregistry
- The spectator registry for getting metricsClusterCheckerTask
instance@Bean @ConditionalOnProperty(value="genie.tasks.database-cleanup.enabled", havingValue="true") @ConditionalOnMissingBean(value=DatabaseCleanupTask.class) public DatabaseCleanupTask databaseCleanupTask(DatabaseCleanupProperties cleanupProperties, JobPersistenceService jobPersistenceService, ClusterPersistenceService clusterPersistenceService, FilePersistenceService filePersistenceService, TagPersistenceService tagPersistenceService, io.micrometer.core.instrument.MeterRegistry registry)
DatabaseCleanupTask
if one is required.cleanupProperties
- The properties to use to configure this taskjobPersistenceService
- The persistence service to use to cleanup the data storeclusterPersistenceService
- The cluster service to use to delete terminated clustersfilePersistenceService
- The file service to use to delete unused file referencestagPersistenceService
- The tag service to use to delete unused tag referencesregistry
- The metrics registryDatabaseCleanupTask
instance to use if the conditions match@Bean @ConditionalOnProperty(value="genie.tasks.user-metrics.enabled", havingValue="true") @ConditionalOnMissingBean(value=UserMetricsTask.class) public UserMetricsTask userMetricsTask(io.micrometer.core.instrument.MeterRegistry registry, JobSearchService jobSearchService, UserMetricsProperties userMetricsProperties)
UserMetricsTask
instance for use.registry
- The metrics registryjobSearchService
- The job search serviceuserMetricsProperties
- The propertiesUserMetricsTask
instance@Bean @ConditionalOnProperty(value="genie.tasks.agent-cleanup.enabled", havingValue="true") @ConditionalOnMissingBean(value=AgentJobCleanupTask.class) public AgentJobCleanupTask agentJobCleanupTask(JobSearchService jobSearchService, JobPersistenceService jobPersistenceService, AgentCleanupProperties agentCleanupProperties, io.micrometer.core.instrument.MeterRegistry registry)
AgentJobCleanupTask
instance for use.jobSearchService
- The job search servicejobPersistenceService
- the job persistence serviceagentCleanupProperties
- the agent cleanup propertiesregistry
- the metrics registryAgentJobCleanupTask