@Configuration
@EnableConfigurationProperties(value={AgentCleanupProperties.class,ArchiveStatusCleanupProperties.class,DatabaseCleanupProperties.class,LeadershipProperties.class,UserMetricsProperties.class})
@AutoConfigureAfter(value={TasksAutoConfiguration.class,ZookeeperAutoConfiguration.class})
public class LeaderAutoConfiguration
extends java.lang.Object
| Constructor and Description |
|---|
LeaderAutoConfiguration() |
| Modifier and Type | Method and Description |
|---|---|
AgentJobCleanupTask |
agentJobCleanupTask(DataServices dataServices,
AgentCleanupProperties agentCleanupProperties,
io.micrometer.core.instrument.MeterRegistry registry,
AgentRoutingService agentRoutingService)
If required, get a
AgentJobCleanupTask instance for use. |
ArchiveStatusCleanupTask |
archiveStatusCleanupTask(DataServices dataServices,
AgentRoutingService agentRoutingService,
ArchiveStatusCleanupProperties archiveStatusCleanupProperties,
io.micrometer.core.instrument.MeterRegistry registry)
If required, get a
ArchiveStatusCleanupTask instance for use. |
ClusterLeaderService |
curatorClusterLeaderService(org.springframework.integration.zookeeper.leader.LeaderInitiator leaderInitiator)
Create a
ClusterLeaderService based on Zookeeper/Curator if LeaderInitiator is
available and the bean does not already exist. |
DatabaseCleanupTask |
databaseCleanupTask(DatabaseCleanupProperties cleanupProperties,
org.springframework.core.env.Environment environment,
DataServices dataServices,
io.micrometer.core.instrument.MeterRegistry registry)
Create a
DatabaseCleanupTask if one is required. |
LeaderElectionActuator |
leaderElectionActuator(ClusterLeaderService clusterLeaderService)
Create a
LeaderElectionActuator bean if one is not already defined and if
ClusterLeaderService is available. |
LeaderTasksCoordinator |
leaderTasksCoordinator(org.springframework.scheduling.TaskScheduler taskScheduler,
java.util.Set<LeaderTask> tasks)
Create the LeadershipTasksCoordination bean used to start and stop all leadership related tasks based on
whether leadership is granted or revoked.
|
ClusterLeaderService |
localClusterLeaderService(LocalLeader localLeader)
Create a
ClusterLeaderService based on static configuration if LocalLeader is
available and the bean does not already exist. |
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,
DataServices dataServices,
UserMetricsProperties userMetricsProperties)
If required get a
UserMetricsTask instance for use. |
@Bean @ConditionalOnMissingBean(value=LeaderTasksCoordinator.class) public LeaderTasksCoordinator leaderTasksCoordinator(@Qualifier(value="genieTaskScheduler") org.springframework.scheduling.TaskScheduler taskScheduler, java.util.Set<LeaderTask> tasks)
taskScheduler - The task scheduler to use for scheduling leadership taskstasks - The leadership tasks to schedule@Bean
@ConditionalOnProperty(value="genie.tasks.database-cleanup.enabled",
havingValue="true")
@ConditionalOnMissingBean(value=DatabaseCleanupTask.class)
public DatabaseCleanupTask databaseCleanupTask(DatabaseCleanupProperties cleanupProperties,
org.springframework.core.env.Environment environment,
DataServices dataServices,
io.micrometer.core.instrument.MeterRegistry registry)
DatabaseCleanupTask if one is required.cleanupProperties - The properties to use to configure this taskenvironment - The application Environment to pull properties fromdataServices - The DataServices encapsulation instance to useregistry - 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,
DataServices dataServices,
UserMetricsProperties userMetricsProperties)
UserMetricsTask instance for use.registry - The metrics registrydataServices - The DataServices instance to useuserMetricsProperties - The propertiesUserMetricsTask instance@Bean
@ConditionalOnProperty(value="genie.tasks.agent-cleanup.enabled",
havingValue="true")
@ConditionalOnMissingBean(value=AgentJobCleanupTask.class)
public AgentJobCleanupTask agentJobCleanupTask(DataServices dataServices,
AgentCleanupProperties agentCleanupProperties,
io.micrometer.core.instrument.MeterRegistry registry,
AgentRoutingService agentRoutingService)
AgentJobCleanupTask instance for use.dataServices - The DataServices encapsulation instance to useagentCleanupProperties - the agent cleanup propertiesregistry - the metrics registryagentRoutingService - the agent routing serviceAgentJobCleanupTask@Bean
@ConditionalOnProperty(value="genie.tasks.archive-status-cleanup.enabled",
havingValue="true")
@ConditionalOnMissingBean(value=ArchiveStatusCleanupTask.class)
public ArchiveStatusCleanupTask archiveStatusCleanupTask(DataServices dataServices,
AgentRoutingService agentRoutingService,
ArchiveStatusCleanupProperties archiveStatusCleanupProperties,
io.micrometer.core.instrument.MeterRegistry registry)
ArchiveStatusCleanupTask instance for use.dataServices - The DataServices encapsulation instance to useagentRoutingService - the agent routing servicearchiveStatusCleanupProperties - the archive status cleanup propertiesregistry - the metrics registryAgentJobCleanupTask@Bean @ConditionalOnBean(value=org.springframework.integration.zookeeper.leader.LeaderInitiator.class) @ConditionalOnMissingBean(value=ClusterLeaderService.class) public ClusterLeaderService curatorClusterLeaderService(org.springframework.integration.zookeeper.leader.LeaderInitiator leaderInitiator)
ClusterLeaderService based on Zookeeper/Curator if LeaderInitiator is
available and the bean does not already exist.leaderInitiator - the Spring Zookeeper/Curator based leader election componentClusterLeaderService@Bean
@ConditionalOnMissingBean(value={org.springframework.integration.zookeeper.leader.LeaderInitiator.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 @ConditionalOnBean(value=LocalLeader.class) @ConditionalOnMissingBean(value=ClusterLeaderService.class) public ClusterLeaderService localClusterLeaderService(LocalLeader localLeader)
ClusterLeaderService based on static configuration if LocalLeader is
available and the bean does not already exist.localLeader - the configuration-based leader election componentClusterLeaderService@Bean @ConditionalOnBean(value=ClusterLeaderService.class) @ConditionalOnMissingBean(value=LeaderElectionActuator.class) public LeaderElectionActuator leaderElectionActuator(ClusterLeaderService clusterLeaderService)
LeaderElectionActuator bean if one is not already defined and if
ClusterLeaderService is available. This bean is an endpoint that gets registered in Spring Actuator.clusterLeaderService - the cluster leader serviceLeaderElectionActuator