Move CircuitBreaker to a shared module
Relocate CircuitBreaker from ingester/pollers to haiku/rag/circuit_breaker so non-ingester callers (docling-serve provider) can reuse it without depending on the ingester package. Co-Authored-By: bryan davis <bryan@monkeytronics.org> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d71695833d
commit
d781335868
9 changed files with 9 additions and 9 deletions
|
|
@ -5,7 +5,7 @@ from haiku.rag.config import CircuitBreakerConfig
|
|||
|
||||
|
||||
class CircuitBreaker:
|
||||
"""Three-state breaker over discover() failures.
|
||||
"""Three-state breaker over repeated failures of a single target.
|
||||
|
||||
- closed: failures are counted; threshold flips to open.
|
||||
- open: probes are blocked until cooldown elapses, then a single probe
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
from haiku.rag.ingester.pollers.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.ingester.pollers.factory import build_source
|
||||
from haiku.rag.ingester.pollers.fs import FSPoller
|
||||
from haiku.rag.ingester.pollers.manager import PollerManager
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ import logging
|
|||
import random
|
||||
from datetime import UTC, datetime
|
||||
|
||||
from haiku.rag.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.config import SourceConfig
|
||||
from haiku.rag.ingester.batch import BatchChange, BatchSourceSummary
|
||||
from haiku.rag.ingester.pollers.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.ingester.queue.models import JobOp, SyncRow
|
||||
from haiku.rag.ingester.queue.repository import JobRepo, SyncStateRepo
|
||||
from haiku.rag.ingester.sources.base import (
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ from haiku.rag.ingester.sources.filter import FileFilter
|
|||
from haiku.rag.telemetry import logfire
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from haiku.rag.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.config import FSSourceConfig
|
||||
from haiku.rag.ingester.pollers.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.ingester.sources.fs import FSSource
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@ from collections.abc import Sequence
|
|||
from datetime import UTC, datetime
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from haiku.rag.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.config import FSSourceConfig, SourceConfig
|
||||
from haiku.rag.ingester.batch import BatchManifest
|
||||
from haiku.rag.ingester.pollers.base import BasePoller
|
||||
from haiku.rag.ingester.pollers.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.ingester.pollers.factory import build_source
|
||||
from haiku.rag.ingester.pollers.fs import FSPoller
|
||||
from haiku.rag.ingester.pollers.periodic import PeriodicPoller
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from typing import TYPE_CHECKING
|
|||
from haiku.rag.ingester.pollers.base import BasePoller
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from haiku.rag.ingester.pollers.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.circuit_breaker import CircuitBreaker
|
||||
|
||||
|
||||
class PeriodicPoller(BasePoller):
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ import time
|
|||
from typing import TYPE_CHECKING
|
||||
from uuid import uuid4
|
||||
|
||||
from haiku.rag.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.config import CircuitBreakerConfig
|
||||
from haiku.rag.ingester.exceptions import PermanentError, TransientError
|
||||
from haiku.rag.ingester.pollers.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.ingester.queue.models import Job, JobOp
|
||||
from haiku.rag.ingester.queue.repository import JobRepo, SyncStateRepo
|
||||
from haiku.rag.ingester.workers.pipeline import run_job
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
from haiku.rag.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.config import CircuitBreakerConfig
|
||||
from haiku.rag.ingester.pollers.circuit_breaker import CircuitBreaker
|
||||
|
||||
|
||||
class _Clock:
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ from pathlib import Path
|
|||
|
||||
import pytest
|
||||
|
||||
from haiku.rag.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.config import (
|
||||
CircuitBreakerConfig,
|
||||
FSSourceConfig,
|
||||
|
|
@ -11,7 +12,6 @@ from haiku.rag.config import (
|
|||
S3SourceConfig,
|
||||
WebDAVSourceConfig,
|
||||
)
|
||||
from haiku.rag.ingester.pollers.circuit_breaker import CircuitBreaker
|
||||
from haiku.rag.ingester.pollers.manager import PollerManager
|
||||
from haiku.rag.ingester.pollers.periodic import PeriodicPoller
|
||||
from haiku.rag.ingester.queue.models import JobOp, JobStatus
|
||||
|
|
|
|||
Loading…
Reference in a new issue