hyb
2025-12-23 7e5db3a16b423ec4a43459805e277979bcac7db5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from abc import ABC, abstractmethod
 
from redis.multidb.failure_detector import FailureDetector
 
 
class AsyncFailureDetector(ABC):
    @abstractmethod
    async def register_failure(self, exception: Exception, cmd: tuple) -> None:
        """Register a failure that occurred during command execution."""
        pass
 
    @abstractmethod
    async def register_command_execution(self, cmd: tuple) -> None:
        """Register a command execution."""
        pass
 
    @abstractmethod
    def set_command_executor(self, command_executor) -> None:
        """Set the command executor for this failure."""
        pass
 
 
class FailureDetectorAsyncWrapper(AsyncFailureDetector):
    """
    Async wrapper for the failure detector.
    """
 
    def __init__(self, failure_detector: FailureDetector) -> None:
        self._failure_detector = failure_detector
 
    async def register_failure(self, exception: Exception, cmd: tuple) -> None:
        self._failure_detector.register_failure(exception, cmd)
 
    async def register_command_execution(self, cmd: tuple) -> None:
        self._failure_detector.register_command_execution(cmd)
 
    def set_command_executor(self, command_executor) -> None:
        self._failure_detector.set_command_executor(command_executor)