Pipeline de middleware
Le pipeline de middleware enveloppe les opérations avec des préoccupations transversales : nouvelle tentative, journalisation, etc.
Architecture
from whoosh_modern.middleware import Middleware, MiddlewarePipeline, RetryMiddleware, LoggingMiddleware
pipeline = MiddlewarePipeline(
RetryMiddleware(attempts=3, backoff="exponential"),
LoggingMiddleware(),
)
result = pipeline.execute(my_operation)
RetryMiddleware
from whoosh_modern.middleware import RetryMiddleware
retry = RetryMiddleware(attempts=3, backoff="exponential")
@retry.wrap
def operation():
return fetch_data()
Stratégies de backoff :
"exponential": 1s, 2s, 4s, 8s..."linear": 1s, 2s, 3s, 4s...
LoggingMiddleware
from whoosh_modern.middleware import LoggingMiddleware
import logging
logger = logging.getLogger("benchmark")
logging_mw = LoggingMiddleware(logger=logger)
@logging_mw.wrap
def tracked():
return fetch_data()