Class LeaderAutoConfiguration
java.lang.Object
com.netflix.genie.web.spring.autoconfigure.tasks.leader.LeaderAutoConfiguration
@Configuration
@EnableConfigurationProperties({AgentCleanupProperties.class,ArchiveStatusCleanupProperties.class,DatabaseCleanupProperties.class,LeadershipProperties.class,UserMetricsProperties.class})
@AutoConfigureAfter({TasksAutoConfiguration.class,ZookeeperAutoConfiguration.class})
public class LeaderAutoConfiguration
extends Object
Beans for Leadership of a Genie cluster.
- Since:
- 3.1.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionagentJobCleanupTask(DataServices dataServices, AgentCleanupProperties agentCleanupProperties, io.micrometer.core.instrument.MeterRegistry registry, AgentRoutingService agentRoutingService) If required, get aAgentJobCleanupTaskinstance for use.archiveStatusCleanupTask(DataServices dataServices, AgentRoutingService agentRoutingService, ArchiveStatusCleanupProperties archiveStatusCleanupProperties, io.micrometer.core.instrument.MeterRegistry registry) If required, get aArchiveStatusCleanupTaskinstance for use.curatorClusterLeaderService(org.springframework.integration.zookeeper.leader.LeaderInitiator leaderInitiator) Create aClusterLeaderServicebased on Zookeeper/Curator ifLeaderInitiatoris available and the bean does not already exist.databaseCleanupTask(DatabaseCleanupProperties cleanupProperties, org.springframework.core.env.Environment environment, DataServices dataServices, io.micrometer.core.instrument.MeterRegistry registry) Create aDatabaseCleanupTaskif one is required.leaderElectionActuator(ClusterLeaderService clusterLeaderService) Create aLeaderElectionActuatorbean if one is not already defined and ifClusterLeaderServiceis available.leaderTasksCoordinator(org.springframework.scheduling.TaskScheduler taskScheduler, Set<LeaderTask> tasks) Create the LeadershipTasksCoordination bean used to start and stop all leadership related tasks based on whether leadership is granted or revoked.localClusterLeaderService(LocalLeader localLeader) Create aClusterLeaderServicebased on static configuration ifLocalLeaderis available and the bean does not already exist.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(io.micrometer.core.instrument.MeterRegistry registry, DataServices dataServices, UserMetricsProperties userMetricsProperties) If required get aUserMetricsTaskinstance for use.
-
Constructor Details
-
LeaderAutoConfiguration
public LeaderAutoConfiguration()
-
-
Method Details
-
leaderTasksCoordinator
@Bean @ConditionalOnMissingBean(LeaderTasksCoordinator.class) public LeaderTasksCoordinator leaderTasksCoordinator(@Qualifier("genieTaskScheduler") org.springframework.scheduling.TaskScheduler taskScheduler, Set<LeaderTask> tasks) Create the LeadershipTasksCoordination bean used to start and stop all leadership related tasks based on whether leadership is granted or revoked.- Parameters:
taskScheduler- The task scheduler to use for scheduling leadership taskstasks- The leadership tasks to schedule- Returns:
- The leader coordinator
-
databaseCleanupTask
@Bean @ConditionalOnProperty(value="genie.tasks.database-cleanup.enabled", havingValue="true") @ConditionalOnMissingBean(DatabaseCleanupTask.class) public DatabaseCleanupTask databaseCleanupTask(DatabaseCleanupProperties cleanupProperties, org.springframework.core.env.Environment environment, DataServices dataServices, io.micrometer.core.instrument.MeterRegistry registry) Create aDatabaseCleanupTaskif one is required.- Parameters:
cleanupProperties- The properties to use to configure this taskenvironment- The applicationEnvironmentto pull properties fromdataServices- TheDataServicesencapsulation instance to useregistry- The metrics registry- Returns:
- The
DatabaseCleanupTaskinstance to use if the conditions match
-
userMetricsTask
@Bean @ConditionalOnProperty(value="genie.tasks.user-metrics.enabled", havingValue="true") @ConditionalOnMissingBean(UserMetricsTask.class) public UserMetricsTask userMetricsTask(io.micrometer.core.instrument.MeterRegistry registry, DataServices dataServices, UserMetricsProperties userMetricsProperties) If required get aUserMetricsTaskinstance for use.- Parameters:
registry- The metrics registrydataServices- TheDataServicesinstance to useuserMetricsProperties- The properties- Returns:
- The
UserMetricsTaskinstance
-
agentJobCleanupTask
@Bean @ConditionalOnProperty(value="genie.tasks.agent-cleanup.enabled", havingValue="true") @ConditionalOnMissingBean(AgentJobCleanupTask.class) public AgentJobCleanupTask agentJobCleanupTask(DataServices dataServices, AgentCleanupProperties agentCleanupProperties, io.micrometer.core.instrument.MeterRegistry registry, AgentRoutingService agentRoutingService) If required, get aAgentJobCleanupTaskinstance for use.- Parameters:
dataServices- TheDataServicesencapsulation instance to useagentCleanupProperties- the agent cleanup propertiesregistry- the metrics registryagentRoutingService- the agent routing service- Returns:
- a
AgentJobCleanupTask
-
archiveStatusCleanupTask
@Bean @ConditionalOnProperty(value="genie.tasks.archive-status-cleanup.enabled", havingValue="true") @ConditionalOnMissingBean(ArchiveStatusCleanupTask.class) public ArchiveStatusCleanupTask archiveStatusCleanupTask(DataServices dataServices, AgentRoutingService agentRoutingService, ArchiveStatusCleanupProperties archiveStatusCleanupProperties, io.micrometer.core.instrument.MeterRegistry registry) If required, get aArchiveStatusCleanupTaskinstance for use.- Parameters:
dataServices- TheDataServicesencapsulation instance to useagentRoutingService- the agent routing servicearchiveStatusCleanupProperties- the archive status cleanup propertiesregistry- the metrics registry- Returns:
- a
AgentJobCleanupTask
-
curatorClusterLeaderService
@Bean @ConditionalOnBean(org.springframework.integration.zookeeper.leader.LeaderInitiator.class) @ConditionalOnMissingBean(ClusterLeaderService.class) public ClusterLeaderService curatorClusterLeaderService(org.springframework.integration.zookeeper.leader.LeaderInitiator leaderInitiator) Create aClusterLeaderServicebased on Zookeeper/Curator ifLeaderInitiatoris available and the bean does not already exist.- Parameters:
leaderInitiator- the Spring Zookeeper/Curator based leader election component- Returns:
- a
ClusterLeaderService
-
localLeader
@Bean @ConditionalOnMissingBean({org.springframework.integration.zookeeper.leader.LeaderInitiator.class,LocalLeader.class}) public 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.- Parameters:
genieEventBus- The genie event bus implementation to useleadershipProperties- Properties related to static leadership configuration for the Genie cluster- Returns:
- The local leader bean
-
localClusterLeaderService
@Bean @ConditionalOnBean(LocalLeader.class) @ConditionalOnMissingBean(ClusterLeaderService.class) public ClusterLeaderService localClusterLeaderService(LocalLeader localLeader) Create aClusterLeaderServicebased on static configuration ifLocalLeaderis available and the bean does not already exist.- Parameters:
localLeader- the configuration-based leader election component- Returns:
- a
ClusterLeaderService
-
leaderElectionActuator
@Bean @ConditionalOnBean(ClusterLeaderService.class) @ConditionalOnMissingBean(LeaderElectionActuator.class) public LeaderElectionActuator leaderElectionActuator(ClusterLeaderService clusterLeaderService) Create aLeaderElectionActuatorbean if one is not already defined and ifClusterLeaderServiceis available. This bean is an endpoint that gets registered in Spring Actuator.- Parameters:
clusterLeaderService- the cluster leader service- Returns:
- a
LeaderElectionActuator
-