#include <userver/dynamic_config/updater/component.hpp>
Component that does a periodic update of runtime configs.
Note that the service with dynamic config update component and without configs cache requires successful update to start. See dynamic_config_fallback for details and explanation.
Config update types to deduplicate. If enabled, JSON of the whole config is compared to the previous one; if same, no config update event is sent to the subscribers of dynamic_config::Source (OnConfigUpdate functions).
deduplicate-update-types static config option specifies the update types of the config cache, for which event deduplication should be performed. Possible values:
none (the default)only-fullonly-incrementalfull-and-incrementalFull updates will always send an event unless deduplicated. Incremental updates may send an extra event for some config service implementations.
Note: This is not a silver bullet against extra events, because the events will be sent to every dynamic config subscriber if any part of the config has updated, not if the interesting part has updated.
Options inherited from components::CachingComponentBase :
Options inherited from components::ComponentBase :
See also the options for components::CachingComponentBase.
Definition at line 70 of file component.hpp.
Inheritance diagram for components::DynamicConfigClientUpdater:Public Types | |
| using | DataType = dynamic_config::DocsMap |
Public Member Functions | |
| DynamicConfigClientUpdater (const ComponentConfig &, const ComponentContext &) | |
| dynamic_config::AdditionalKeysToken | SetAdditionalKeys (std::vector< std::string > keys) |
| utils::SharedReadablePtr< dynamic_config::DocsMap > | Get () const final |
| utils::SharedReadablePtr< dynamic_config::DocsMap > | GetUnsafe () const |
| concurrent::AsyncEventSubscriberScope | UpdateAndListen (Class *obj, std::string name, void(Class::*func)(const std::shared_ptr< const dynamic_config::DocsMap > &)) |
| concurrent::AsyncEventChannel< const std::shared_ptr< const dynamic_config::DocsMap > & > & | GetEventChannel () |
| ComponentHealth | GetComponentHealth () const override |
| void | OnLoadingCancelled () override |
| void | OnAllComponentsLoaded () override |
| void | OnAllComponentsAreStopping () override |
Static Public Member Functions | |
| static yaml_config::Schema | GetStaticConfigSchema () |
Static Public Attributes | |
| static constexpr std::string_view | kName = "dynamic-config-client-updater" |
| The default name of components::DynamicConfigClientUpdater. | |
Protected Types | |
| using | LoggableComponentBase = ComponentBase |
| enum class | Flag { kNone = 0 , kNoFirstUpdate = 1 << 0 } |
| Periodic update flags. More... | |
Protected Member Functions | |
| void | Set (std::unique_ptr< const dynamic_config::DocsMap > value_ptr) |
| void | Set (dynamic_config::DocsMap &&value) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| void | Attach (const std::shared_ptr< const dynamic_config::DocsMap > &value_ptr) |
| void | Emplace (Args &&... args) |
| void | Clear () |
| Clears the content of the cache by string a default constructed T. | |
| virtual bool | MayReturnNull () const |
Whether Get is expected to return nullptr. | |
| virtual void | PreAssignCheck (const dynamic_config::DocsMap *old_value_ptr, const dynamic_config::DocsMap *new_value_ptr) const |
| If the option has-pre-assign-check is set true in static config, this function is called before assigning the new value to the cache. | |
| void | InvalidateAsync (UpdateType update_type) |
| Non-blocking forced cache update of specified type. | |
| void | UpdateSyncDebug (UpdateType update_type) |
| Forces a cache update of specified type. | |
| const std::string & | Name () const |
| AllowedUpdateTypes | GetAllowedUpdateTypes () const |
| Update types configured for the cache. | |
| void | OnCacheModified () |
| virtual utils::Flags< Flag > | GetStartFlags () const |
| Returns flags for cache start. | |
| void | EarlyStartPeriodicUpdates (utils::Flags< Flag > flags) |
| Call this to start periodic updates just now, not after the constuctor. | |
| virtual void | WriteContents (dump::Writer &writer, const dynamic_config::DocsMap &contents) const |
| virtual std::unique_ptr< const dynamic_config::DocsMap > | ReadContents (dump::Reader &reader) const |
|
inherited |
Definition at line 144 of file caching_component_base.hpp.
|
protectedinherited |
Definition at line 67 of file component_base.hpp.
|
strongprotectedinherited |
Periodic update flags.
| Enumerator | |
|---|---|
| kNoFirstUpdate | Disable initial update on start.
|
Definition at line 61 of file cache_update_trait.hpp.
|
protectedinherited |
Attach the value of cache. As a result the Get() member function starts returning the value passed into this function after the Update() finishes. Does not take over into sole ownership. Do not use unless absolutely necessary. The object must be strictly thread-safe.
Definition at line 185 of file caching_component_base.hpp.
|
protectedinherited |
Clears the content of the cache by string a default constructed T.
Definition at line 192 of file caching_component_base.hpp.
|
protectedinherited |
Definition at line 189 of file caching_component_base.hpp.
|
finalvirtualinherited |
nullptr if and only if MayReturnNull returns true. | cache::EmptyCacheError | if the contents are nullptr, and MayReturnNull returns false (which is the default behavior). |
Implements cache::DataProvider< T >.
Definition at line 150 of file caching_component_base.hpp.
|
inlineoverridevirtualinherited |
Override this function to inform the world of the state of your component.
Reimplemented from components::RawComponentBase.
Reimplemented in server::handlers::Restart.
Definition at line 35 of file component_base.hpp.
|
inherited |
Definition at line 164 of file caching_component_base.hpp.
|
inherited |
MayReturnNull. Definition at line 153 of file caching_component_base.hpp.
|
inherited |
Non-blocking forced cache update of specified type.
|
protectedvirtualinherited |
Whether Get is expected to return nullptr.
Definition at line 195 of file caching_component_base.hpp.
|
inherited |
|
inlineoverridevirtualinherited |
Component may use this function to stop doing work before the stop of the components that depend on it.
Base components may override it and make final to do some work before the derived object constructor is called. Don't use it otherwise.
Reimplemented from components::RawComponentBase.
Reimplemented in urabbitmq::ConsumerComponentBase, and components::Server.
Definition at line 58 of file component_base.hpp.
|
inlineoverridevirtualinherited |
Component may use this function to finalize registration of other components that depend on it (for example, handler components register in server component, and the latter uses OnAllComponentsLoaded() to start processing requests).
Base components may override it and make final to do some work after the derived object constructor is called. Don't use it otherwise.
Reimplemented from components::RawComponentBase.
Reimplemented in urabbitmq::ConsumerComponentBase, components::Server, and server::handlers::Ping.
Definition at line 51 of file component_base.hpp.
|
protectedinherited |
Called in CachingComponentBase::Set during update to indicate that the cached data has been modified
|
inlineoverridevirtualinherited |
Called once if the creation of any other component failed. If the current component expects some other component to take any action with the current component, this call is a signal that such action may never happen due to components loading was cancelled. Application components might not want to override it.
Reimplemented from components::RawComponentBase.
Definition at line 42 of file component_base.hpp.
|
protectedvirtualinherited |
If the option has-pre-assign-check is set true in static config, this function is called before assigning the new value to the cache.
Definition at line 207 of file caching_component_base.hpp.
|
protectedvirtualinherited |
Definition at line 201 of file caching_component_base.hpp.
|
protectedinherited |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 177 of file caching_component_base.hpp.
|
protectedinherited |
Sets the new value of cache. As a result the Get() member function starts returning the value passed into this function after the Update() finishes.
Definition at line 174 of file caching_component_base.hpp.
|
inherited |
Subscribes to cache updates using a member function. Also immediately invokes the function with the current cache contents.
Definition at line 158 of file caching_component_base.hpp.
|
inherited |
Forces a cache update of specified type.
| If | Update throws |
|
protectedvirtualinherited |
Override to use custom serialization for cache dumps
Definition at line 199 of file caching_component_base.hpp.