Class AgentLaunchersAutoConfiguration
java.lang.Object
com.netflix.genie.web.spring.autoconfigure.agent.launchers.AgentLaunchersAutoConfiguration
@Configuration
@EnableConfigurationProperties({LocalAgentLauncherProperties.class,TitusAgentLauncherProperties.class})
@AutoConfigureAfter(org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration.class)
public class AgentLaunchersAutoConfiguration
extends Object
Auto configuration for beans responsible for launching Genie Agent instances.
- Since:
- 4.0.0
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlocalAgentLauncher
(GenieWebHostInfo genieWebHostInfo, GenieWebRpcInfo genieWebRpcInfo, DataServices dataServices, LocalAgentLauncherProperties launcherProperties, ExecutorFactory executorFactory, BraveTracingComponents tracingComponents, io.micrometer.core.instrument.MeterRegistry registry) Provide aAgentLauncher
implementation which launches local agent processes if enabled via property.Provide anExecutorFactory
instance if no other was defined.titusAgentLauncher
(org.springframework.web.client.RestTemplate restTemplate, org.springframework.retry.support.RetryTemplate retryTemplate, TitusAgentLauncherImpl.TitusJobRequestAdapter titusJobRequestAdapter, GenieHostInfo genieHostInfo, TitusAgentLauncherProperties titusAgentLauncherProperties, BraveTracingComponents tracingComponents, org.springframework.core.env.Environment environment, io.micrometer.core.instrument.MeterRegistry registry) Provide aTitusAgentLauncherImpl
implementation which launches agent processes in a dedicated Titus container if enabled via property.org.springframework.retry.backoff.ExponentialBackOffPolicy
Provides a default implementation ofBackOffPolicy
if no other has been defined in the context.Provides a default implementation ofRetryPolicy
that retries based on a set of HTTP status codes.org.springframework.retry.support.RetryTemplate
titusAPIRetryTemplate
(org.springframework.retry.RetryPolicy retryPolicy, org.springframework.retry.backoff.BackOffPolicy backOffPolicy) Provides a default implementation ofRetryTemplate
that will be used to retry failed Titus api calls based on the retry policy and backoff policies defined in the application context.Provides a default implementation ofTitusAgentLauncherImpl.TitusJobRequestAdapter
that is a no-op if no other implementation has been provided elsewhere.org.springframework.web.client.RestTemplate
titusRestTemplate
(org.springframework.boot.web.client.RestTemplateBuilder restTemplateBuilder) Provide aRestTemplate
instance used for calling the Titus REST API if no other instance is provided.
-
Constructor Details
-
AgentLaunchersAutoConfiguration
public AgentLaunchersAutoConfiguration()
-
-
Method Details
-
titusRestTemplate
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusRestTemplate") public org.springframework.web.client.RestTemplate titusRestTemplate(org.springframework.boot.web.client.RestTemplateBuilder restTemplateBuilder) Provide aRestTemplate
instance used for calling the Titus REST API if no other instance is provided.- Parameters:
restTemplateBuilder
- The SpringRestTemplateBuilder
instance to use- Returns:
- The rest template to use
-
titusJobRequestAdapter
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(TitusJobRequestAdapter.class) public TitusAgentLauncherImpl.TitusJobRequestAdapter titusJobRequestAdapter()Provides a default implementation ofTitusAgentLauncherImpl.TitusJobRequestAdapter
that is a no-op if no other implementation has been provided elsewhere.- Returns:
- A no-op implementation
-
titusAPIRetryPolicy
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusAPIRetryPolicy", value=org.springframework.retry.RetryPolicy.class) public TitusAgentLauncherImpl.TitusAPIRetryPolicy titusAPIRetryPolicy()Provides a default implementation ofRetryPolicy
that retries based on a set of HTTP status codes. Currently justHttpStatus.SERVICE_UNAVAILABLE
andHttpStatus.REQUEST_TIMEOUT
. Max retries set to 3.- Returns:
- A
TitusAgentLauncherImpl.TitusAPIRetryPolicy
instance with the default settings applied
-
titusAPIBackoffPolicy
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusAPIBackoffPolicy", value=org.springframework.retry.backoff.BackOffPolicy.class) public org.springframework.retry.backoff.ExponentialBackOffPolicy titusAPIBackoffPolicy()Provides a default implementation ofBackOffPolicy
if no other has been defined in the context.- Returns:
- A default
ExponentialBackOffPolicy
instance
-
titusAPIRetryTemplate
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") @ConditionalOnMissingBean(name="titusAPIRetryTemplate", value=org.springframework.retry.support.RetryTemplate.class) public org.springframework.retry.support.RetryTemplate titusAPIRetryTemplate(@Qualifier("titusAPIRetryPolicy") org.springframework.retry.RetryPolicy retryPolicy, @Qualifier("titusAPIBackoffPolicy") org.springframework.retry.backoff.BackOffPolicy backOffPolicy) Provides a default implementation ofRetryTemplate
that will be used to retry failed Titus api calls based on the retry policy and backoff policies defined in the application context.- Parameters:
retryPolicy
- TheRetryPolicy
to use for Titus API call failuresbackOffPolicy
- TheBackOffPolicy
to use for Titus API call failures- Returns:
- A
RetryTemplate
instance configured with the supplied retry and backoff policies
-
titusAgentLauncher
@Bean @ConditionalOnProperty(name="genie.agent.launcher.titus.enabled", havingValue="true") public TitusAgentLauncherImpl titusAgentLauncher(@Qualifier("titusRestTemplate") org.springframework.web.client.RestTemplate restTemplate, @Qualifier("titusAPIRetryTemplate") org.springframework.retry.support.RetryTemplate retryTemplate, TitusAgentLauncherImpl.TitusJobRequestAdapter titusJobRequestAdapter, GenieHostInfo genieHostInfo, TitusAgentLauncherProperties titusAgentLauncherProperties, BraveTracingComponents tracingComponents, org.springframework.core.env.Environment environment, io.micrometer.core.instrument.MeterRegistry registry) Provide aTitusAgentLauncherImpl
implementation which launches agent processes in a dedicated Titus container if enabled via property.- Parameters:
restTemplate
- the rest templateretryTemplate
- TheRetryTemplate
instance to use to retry failed Titus API callstitusJobRequestAdapter
- TheTitusAgentLauncherImpl.TitusJobRequestAdapter
implementation to usegenieHostInfo
- the metadata about the local server and hosttitusAgentLauncherProperties
- the configuration propertiestracingComponents
- TheBraveTracingComponents
instance to useenvironment
- The applicationEnvironment
used to pull dynamic properties after launchregistry
- the metric registry- Returns:
- a
TitusAgentLauncherImpl
-
processExecutorFactory
@Bean @ConditionalOnMissingBean(ExecutorFactory.class) public ExecutorFactory processExecutorFactory()Provide anExecutorFactory
instance if no other was defined.- Returns:
- Instance of
ExecutorFactory
-
localAgentLauncher
@Bean @ConditionalOnProperty(name="genie.agent.launcher.local.enabled", havingValue="true") public LocalAgentLauncherImpl localAgentLauncher(GenieWebHostInfo genieWebHostInfo, GenieWebRpcInfo genieWebRpcInfo, DataServices dataServices, LocalAgentLauncherProperties launcherProperties, ExecutorFactory executorFactory, BraveTracingComponents tracingComponents, io.micrometer.core.instrument.MeterRegistry registry) Provide aAgentLauncher
implementation which launches local agent processes if enabled via property.- Parameters:
genieWebHostInfo
- TheGenieWebHostInfo
of this instancegenieWebRpcInfo
- TheGenieWebRpcInfo
of this instancedataServices
- TheDataServices
instance to uselauncherProperties
- The properties related to launching an agent locallyexecutorFactory
- TheExecutorFactory
to use to launch agent processestracingComponents
- TheBraveTracingComponents
instance to useregistry
- TheMeterRegistry
to register metrics- Returns:
- A
LocalAgentLauncherImpl
instance
-