userver: userver/storages/redis/wait_connected_mode.hpp Source File
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
wait_connected_mode.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file
4/// @brief @copybrief storages::redis::RedisWaitConnected
5
6#include <chrono>
7#include <string>
8
9#include <userver/formats/parse/to.hpp>
10#include <userver/testsuite/redis_control.hpp>
11
12USERVER_NAMESPACE_BEGIN
13
14namespace storages::redis {
15
16/// Default timeout for Redis connection wait
17inline constexpr auto kRedisWaitConnectedDefaultTimeout = std::chrono::seconds(11);
18
19/// Connection wait mode for the Redis
21 kNoWait, ///< Do not wait.
22 kMaster, ///< If we need to write to redis.
23 kMasterOrSlave, ///< Enough for reading data from redis.
24 kSlave, ///< It may be no slaves on unstable. Waiting can always fail.
25 kMasterAndSlave, ///< It may be no slaves on unstable.
26};
27
28std::string ToString(WaitConnectedMode mode);
29
30WaitConnectedMode Parse(const std::string& str, formats::parse::To<WaitConnectedMode>);
31
32/// Connection wait options for the Redis; mostly used by storages::redis::Client::WaitConnectedOnce.
35 bool throw_on_fail{false};
36 std::chrono::milliseconds timeout{kRedisWaitConnectedDefaultTimeout};
37
38 RedisWaitConnected MergeWith(const testsuite::RedisControl& t) const;
39};
40
41} // namespace storages::redis
42
43USERVER_NAMESPACE_END