Package ch.rswk.meta.engine
Class EngineRuntime
java.lang.Object
ch.rswk.meta.engine.EngineRuntime
- All Implemented Interfaces:
Executor
EngineRuntime provides executor services,
ServiceManager
for service lifecycle, centralized access to
Metric,
Health-Check and AlertRegistry
.
Implements Executor
to provide convenience to submit and handle async tasks. See
ListenableFuture.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static final record
static final record
static final record
private static class
private static class
static final record
static interface
private static class
private class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AlertRegistry
private final EngineRuntime.EngineRuntimeConfig
private final com.google.common.eventbus.EventBus
private final com.google.common.util.concurrent.ListeningExecutorService
private final com.codahale.metrics.health.HealthCheckRegistry
private static final org.slf4j.Logger
private final com.codahale.metrics.MetricRegistry
private boolean
private static final String
private final ScheduledTasks
private final com.github.benmanes.caffeine.cache.Scheduler
private static final Collector
<CharSequence, ?, String> private final javax.inject.Provider
<com.google.common.util.concurrent.ServiceManager> private OffsetDateTime
private static final Predicate
<com.google.common.util.concurrent.Service.State> static final Duration
private final Map
<String, EngineRuntime.FileWatcher> private final WatchService
-
Constructor Summary
ConstructorsConstructorDescriptionEngineRuntime
(AlertRegistry alertRegistry, EngineRuntime.EngineRuntimeConfig config, com.google.common.eventbus.EventBus eventBus, com.google.common.util.concurrent.ListeningExecutorService executor, com.codahale.metrics.health.HealthCheckRegistry healthCheckRegistry, com.codahale.metrics.MetricRegistry metricRegistry, javax.inject.Provider<com.google.common.util.concurrent.ServiceManager> serviceManagerProvider, Set<EngineRuntime.FileWatcher> watchers) -
Method Summary
Modifier and TypeMethodDescriptionprivate static boolean
awaitServices
(Consumer<com.google.common.util.concurrent.Service> await, com.google.common.util.concurrent.Service... services) boolean
awaitServicesRunning
(com.google.common.util.concurrent.Service... services) boolean
awaitServicesTerminated
(com.google.common.util.concurrent.Service... services) static void
cancelFuture
(@Nullable Future<?> f) private void
com.google.common.eventbus.EventBus
eventBus()
void
com.fasterxml.jackson.databind.node.ObjectNode
private String
getServiceName
(Object service) <T> List
<T> getServices
(Class<T> type) private static WatchService
com.codahale.metrics.health.HealthCheckRegistry
boolean
boolean
com.codahale.metrics.MetricRegistry
static com.codahale.metrics.health.HealthCheckRegistry
static com.codahale.metrics.MetricRegistry
private static void
putStatsMetrics
(Map<String, com.codahale.metrics.Metric> metrics, com.github.benmanes.caffeine.cache.stats.CacheStats stats) void
com.github.benmanes.caffeine.cache.Scheduler
void
shutDown()
void
shutdownAndAwaitTermination
(ExecutorService executor) void
startUp()
void
<T> com.google.common.util.concurrent.ListenableFuture
<T>
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG -
WATCH_SCHEDULE
-
RUNTIME_METRIC_PREFIX
- See Also:
-
SERVICE_NAME_JOINER
-
UNHEALTHY_SERVICE_STATES
private static final Predicate<com.google.common.util.concurrent.Service.State> UNHEALTHY_SERVICE_STATES -
alertRegistry
-
config
-
eventBus
private final com.google.common.eventbus.EventBus eventBus -
executor
private final com.google.common.util.concurrent.ListeningExecutorService executor -
healthCheckRegistry
private final com.codahale.metrics.health.HealthCheckRegistry healthCheckRegistry -
metricRegistry
private final com.codahale.metrics.MetricRegistry metricRegistry -
scheduledTasks
-
scheduler
private final com.github.benmanes.caffeine.cache.Scheduler scheduler -
serviceManagerProvider
private final javax.inject.Provider<com.google.common.util.concurrent.ServiceManager> serviceManagerProvider -
watchService
-
watchersByFileName
-
running
private volatile boolean running -
startDateTime
-
-
Constructor Details
-
EngineRuntime
@Inject public EngineRuntime(AlertRegistry alertRegistry, EngineRuntime.EngineRuntimeConfig config, com.google.common.eventbus.EventBus eventBus, com.google.common.util.concurrent.ListeningExecutorService executor, com.codahale.metrics.health.HealthCheckRegistry healthCheckRegistry, com.codahale.metrics.MetricRegistry metricRegistry, javax.inject.Provider<com.google.common.util.concurrent.ServiceManager> serviceManagerProvider, Set<EngineRuntime.FileWatcher> watchers)
-
-
Method Details
-
registerFileWatcher
-
alertRegistry
-
awaitServicesRunning
public boolean awaitServicesRunning(com.google.common.util.concurrent.Service... services) -
awaitServices
private static boolean awaitServices(Consumer<com.google.common.util.concurrent.Service> await, com.google.common.util.concurrent.Service... services) -
awaitServicesTerminated
public boolean awaitServicesTerminated(com.google.common.util.concurrent.Service... services) -
cancelFuture
-
eventBus
public com.google.common.eventbus.EventBus eventBus() -
execute
-
getServiceInfo
public com.fasterxml.jackson.databind.node.ObjectNode getServiceInfo() -
getUptime
-
getServices
-
getServiceName
-
getUnhealthyService
-
getWatchService
-
healthCheckRegistry
public com.codahale.metrics.health.HealthCheckRegistry healthCheckRegistry() -
isHealthy
public boolean isHealthy() -
isServiceManagerHealthy
public boolean isServiceManagerHealthy() -
metricRegistry
public com.codahale.metrics.MetricRegistry metricRegistry() -
newHealthCheckRegistry
public static com.codahale.metrics.health.HealthCheckRegistry newHealthCheckRegistry() -
newMetricRegistry
public static com.codahale.metrics.MetricRegistry newMetricRegistry() -
putStatsMetrics
-
scheduledTasks
-
scheduler
public com.github.benmanes.caffeine.cache.Scheduler scheduler() -
startUp
public void startUp() -
shutDown
public void shutDown() -
shutdownAndAwaitTermination
-
checkForFileChanges
private void checkForFileChanges() -
submit
- See Also:
-
submit
- See Also:
-