from splinter.control import RetryMode# Basic: Retry on any exceptionRetryConfig(mode=RetryMode.BASIC)# Selective: Only retry specific exceptionsRetryConfig( mode=RetryMode.SELECTIVE, retry_on=[ConnectionError, TimeoutError],)# Fail-closed: Stop on first failure (for critical operations)RetryConfig(mode=RetryMode.FAIL_CLOSED)
from splinter.control import RetryStrategy, CircuitBreakerbreaker = CircuitBreaker(breaker_id="api", failure_threshold=5)async def call_with_protection(): breaker.check() # Raises if circuit open try: result = await strategy.execute(api_call) breaker.record_success() return result except Exception as e: breaker.record_failure() raise