Class InMemoryTimeLimiterRegistry

java.lang.Object
io.github.resilience4j.core.registry.AbstractRegistry<TimeLimiter,​TimeLimiterConfig>
io.github.resilience4j.timelimiter.internal.InMemoryTimeLimiterRegistry
All Implemented Interfaces:
io.github.resilience4j.core.Registry<TimeLimiter,​TimeLimiterConfig>, TimeLimiterRegistry

public class InMemoryTimeLimiterRegistry
extends io.github.resilience4j.core.registry.AbstractRegistry<TimeLimiter,​TimeLimiterConfig>
implements TimeLimiterRegistry
Backend TimeLimiter manager. Constructs backend TimeLimiters according to configuration values.
  • Nested Class Summary

    Nested classes/interfaces inherited from interface io.github.resilience4j.core.Registry

    io.github.resilience4j.core.Registry.EventPublisher<E extends java.lang.Object>
  • Field Summary

    Fields inherited from class io.github.resilience4j.core.registry.AbstractRegistry

    CONFIG_MUST_NOT_BE_NULL, configurations, CONSUMER_MUST_NOT_BE_NULL, DEFAULT_CONFIG, entryMap, registryTags, SUPPLIER_MUST_NOT_BE_NULL, TAGS_MUST_NOT_BE_NULL
  • Constructor Summary

    Constructors 
    Constructor Description
    InMemoryTimeLimiterRegistry()
    The constructor with default default.
    InMemoryTimeLimiterRegistry​(TimeLimiterConfig defaultConfig)
    The constructor with custom default config.
    InMemoryTimeLimiterRegistry​(TimeLimiterConfig defaultConfig, io.github.resilience4j.core.registry.RegistryEventConsumer<TimeLimiter> registryEventConsumer)  
    InMemoryTimeLimiterRegistry​(TimeLimiterConfig defaultConfig, io.github.resilience4j.core.registry.RegistryEventConsumer<TimeLimiter> registryEventConsumer, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)  
    InMemoryTimeLimiterRegistry​(TimeLimiterConfig defaultConfig, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)  
    InMemoryTimeLimiterRegistry​(TimeLimiterConfig defaultConfig, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<TimeLimiter>> registryEventConsumers)  
    InMemoryTimeLimiterRegistry​(TimeLimiterConfig defaultConfig, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<TimeLimiter>> registryEventConsumers, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)  
    InMemoryTimeLimiterRegistry​(io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)  
    InMemoryTimeLimiterRegistry​(java.util.Map<java.lang.String,​TimeLimiterConfig> configs)  
    InMemoryTimeLimiterRegistry​(java.util.Map<java.lang.String,​TimeLimiterConfig> configs, io.github.resilience4j.core.registry.RegistryEventConsumer<TimeLimiter> registryEventConsumer)  
    InMemoryTimeLimiterRegistry​(java.util.Map<java.lang.String,​TimeLimiterConfig> configs, io.github.resilience4j.core.registry.RegistryEventConsumer<TimeLimiter> registryEventConsumer, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)  
    InMemoryTimeLimiterRegistry​(java.util.Map<java.lang.String,​TimeLimiterConfig> configs, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)  
    InMemoryTimeLimiterRegistry​(java.util.Map<java.lang.String,​TimeLimiterConfig> configs, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<TimeLimiter>> registryEventConsumers)  
    InMemoryTimeLimiterRegistry​(java.util.Map<java.lang.String,​TimeLimiterConfig> configs, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<TimeLimiter>> registryEventConsumers, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)  
  • Method Summary

    Modifier and Type Method Description
    io.vavr.collection.Seq<TimeLimiter> getAllTimeLimiters()
    Returns all managed TimeLimiter instances.
    TimeLimiter timeLimiter​(java.lang.String name)
    Returns a managed TimeLimiter or creates a new one with the default TimeLimiter configuration.
    TimeLimiter timeLimiter​(java.lang.String name, TimeLimiterConfig config)
    Returns a managed TimeLimiter or creates a new one with a custom TimeLimiter configuration.
    TimeLimiter timeLimiter​(java.lang.String name, TimeLimiterConfig timeLimiterConfig, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)
    Returns a managed TimeLimiter or creates a new one with a custom TimeLimiter configuration.
    TimeLimiter timeLimiter​(java.lang.String name, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)
    Returns a managed TimeLimiter or creates a new one with the default TimeLimiter configuration.
    TimeLimiter timeLimiter​(java.lang.String name, java.lang.String configName)
    Returns a managed TimeLimiter or creates a new one.
    TimeLimiter timeLimiter​(java.lang.String name, java.lang.String configName, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)
    Returns a managed TimeLimiter or creates a new one.
    TimeLimiter timeLimiter​(java.lang.String name, java.util.function.Supplier<TimeLimiterConfig> timeLimiterConfigSupplier)
    Returns a managed TimeLimiterConfig or creates a new one with a custom TimeLimiterConfig configuration.
    TimeLimiter timeLimiter​(java.lang.String name, java.util.function.Supplier<TimeLimiterConfig> timeLimiterConfigSupplier, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)
    Returns a managed TimeLimiter or creates a new one with a custom TimeLimiter configuration.

    Methods inherited from class io.github.resilience4j.core.registry.AbstractRegistry

    addConfiguration, computeIfAbsent, find, getAllTags, getConfiguration, getDefaultConfig, getEventPublisher, getTags, remove, replace

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.github.resilience4j.core.Registry

    addConfiguration, find, getConfiguration, getDefaultConfig, getEventPublisher, getTags, remove, replace
  • Constructor Details

  • Method Details

    • getAllTimeLimiters

      public io.vavr.collection.Seq<TimeLimiter> getAllTimeLimiters()
      Returns all managed TimeLimiter instances.
      Specified by:
      getAllTimeLimiters in interface TimeLimiterRegistry
      Returns:
      all managed TimeLimiter instances.
    • timeLimiter

      public TimeLimiter timeLimiter​(java.lang.String name)
      Returns a managed TimeLimiter or creates a new one with the default TimeLimiter configuration.
      Specified by:
      timeLimiter in interface TimeLimiterRegistry
      Parameters:
      name - the name of the TimeLimiter
      Returns:
      The TimeLimiter
    • timeLimiter

      public TimeLimiter timeLimiter​(java.lang.String name, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)
      Description copied from interface: TimeLimiterRegistry
      Returns a managed TimeLimiter or creates a new one with the default TimeLimiter configuration.

      The tags passed will be appended to the tags already configured for the registry. When tags (keys) of the two collide the tags passed with this method will override the tags of the registry.

      Specified by:
      timeLimiter in interface TimeLimiterRegistry
      Parameters:
      name - the name of the TimeLimiter
      tags - tags added to the TimeLimiter
      Returns:
      The TimeLimiter
    • timeLimiter

      public TimeLimiter timeLimiter​(java.lang.String name, TimeLimiterConfig config)
      Returns a managed TimeLimiter or creates a new one with a custom TimeLimiter configuration.
      Specified by:
      timeLimiter in interface TimeLimiterRegistry
      Parameters:
      name - the name of the TimeLimiter
      config - a custom TimeLimiter configuration
      Returns:
      The TimeLimiter
    • timeLimiter

      public TimeLimiter timeLimiter​(java.lang.String name, TimeLimiterConfig timeLimiterConfig, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)
      Description copied from interface: TimeLimiterRegistry
      Returns a managed TimeLimiter or creates a new one with a custom TimeLimiter configuration.

      The tags passed will be appended to the tags already configured for the registry. When tags (keys) of the two collide the tags passed with this method will override the tags of the registry.

      Specified by:
      timeLimiter in interface TimeLimiterRegistry
      Parameters:
      name - the name of the TimeLimiter
      timeLimiterConfig - a custom TimeLimiter configuration
      tags - tags added to the TimeLimiter
      Returns:
      The TimeLimiter
    • timeLimiter

      public TimeLimiter timeLimiter​(java.lang.String name, java.util.function.Supplier<TimeLimiterConfig> timeLimiterConfigSupplier)
      Returns a managed TimeLimiterConfig or creates a new one with a custom TimeLimiterConfig configuration.
      Specified by:
      timeLimiter in interface TimeLimiterRegistry
      Parameters:
      name - the name of the TimeLimiterConfig
      timeLimiterConfigSupplier - a supplier of a custom TimeLimiterConfig configuration
      Returns:
      The TimeLimiterConfig
    • timeLimiter

      public TimeLimiter timeLimiter​(java.lang.String name, java.util.function.Supplier<TimeLimiterConfig> timeLimiterConfigSupplier, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)
      Description copied from interface: TimeLimiterRegistry
      Returns a managed TimeLimiter or creates a new one with a custom TimeLimiter configuration.

      The tags passed will be appended to the tags already configured for the registry. When tags (keys) of the two collide the tags passed with this method will override the tags of the registry.

      Specified by:
      timeLimiter in interface TimeLimiterRegistry
      Parameters:
      name - the name of the TimeLimiter
      timeLimiterConfigSupplier - a supplier of a custom TimeLimiter configuration
      tags - tags added to the TimeLimiter
      Returns:
      The TimeLimiter
    • timeLimiter

      public TimeLimiter timeLimiter​(java.lang.String name, java.lang.String configName)
      Returns a managed TimeLimiter or creates a new one. The configuration must have been added upfront via Registry.addConfiguration(String, Object).
      Specified by:
      timeLimiter in interface TimeLimiterRegistry
      Parameters:
      name - the name of the TimeLimiter
      configName - the name of the shared configuration
      Returns:
      The TimeLimiter
    • timeLimiter

      public TimeLimiter timeLimiter​(java.lang.String name, java.lang.String configName, io.vavr.collection.Map<java.lang.String,​java.lang.String> tags)
      Description copied from interface: TimeLimiterRegistry
      Returns a managed TimeLimiter or creates a new one. The configuration must have been added upfront via Registry.addConfiguration(String, Object).

      The tags passed will be appended to the tags already configured for the registry. When tags (keys) of the two collide the tags passed with this method will override the tags of the registry.

      Specified by:
      timeLimiter in interface TimeLimiterRegistry
      Parameters:
      name - the name of the TimeLimiter
      configName - the name of the shared configuration
      tags - tags added to the TimeLimiter
      Returns:
      The TimeLimiter