Client that allows subscribing to Redis channel messages.
Usually retrieved from components::Redis component.
Callback for each received message is called only after the execution of callback for previous message has finished. For parallel message processing use the utils::Async().
- Warning
- Messages can be received in any order due to Redis sharding. Sometimes messages can be duplicated due to subscriptions rebalancing. Some messages may be lost (it's a Redis limitation).
-
The first callback execution can happen before
Subscribe() or Psubscribe() return as it happens in a separate task.
- Note
- a good GMock-based mock for this class can be found here: userver/storages/redis/mock_subscribe_client.hpp
Definition at line 38 of file subscribe_client.hpp.
|
|
virtual SubscriptionToken | Subscribe (std::string channel, SubscriptionToken::OnMessageCb on_message_cb, const CommandControl &command_control)=0 |
| |
| SubscriptionToken | Subscribe (std::string channel, SubscriptionToken::OnMessageCb on_message_cb) |
| |
|
virtual SubscriptionToken | Psubscribe (std::string pattern, SubscriptionToken::OnPmessageCb on_pmessage_cb, const CommandControl &command_control)=0 |
| |
|
virtual size_t | ShardsCount () const =0 |
| |
|
virtual bool | IsInClusterMode () const =0 |
| |
| SubscriptionToken | Psubscribe (std::string pattern, SubscriptionToken::OnPmessageCb on_pmessage_cb) |
| |
|
virtual SubscriptionToken | Ssubscribe (std::string channel, SubscriptionToken::OnMessageCb on_message_cb, const CommandControl &command_control)=0 |
| |
| virtual SubscriptionToken | Subscribe (std::vector< std::string > channels, SubscriptionToken::OnMessageCb on_message_cb, const CommandControl &command_control)=0 |
| |
| virtual SubscriptionToken | Psubscribe (std::vector< std::string > patterns, SubscriptionToken::OnPmessageCb on_message_cb, const CommandControl &command_control)=0 |
| |
| virtual SubscriptionToken | Ssubscribe (std::vector< std::string > channels, SubscriptionToken::OnMessageCb on_message_cb, const CommandControl &command_control)=0 |
| |
| SubscriptionToken | Ssubscribe (std::string channel, SubscriptionToken::OnMessageCb on_message_cb) |
| |
| SubscriptionToken | Ssubscribe (std::vector< std::string > channels, SubscriptionToken::OnMessageCb on_message_cb) |
| |
| SubscriptionToken | Psubscribe (std::vector< std::string > patterns, SubscriptionToken::OnPmessageCb on_message_cb) |
| |