123456789101112131415161718192021222324252627282930313233343536373839 |
- from abc import abstractmethod
- from .base import Provider, ProviderConfig
- class SchedulerConfig(ProviderConfig):
- """Configuration for scheduler provider"""
- provider: str = "apscheduler"
- def validate_config(self):
- if self.provider not in self.supported_providers:
- raise ValueError(
- f"Scheduler provider {self.provider} is not supported."
- )
- @property
- def supported_providers(self) -> list[str]:
- return ["apscheduler"]
- class SchedulerProvider(Provider):
- """Base class for scheduler providers"""
- def __init__(self, config: SchedulerConfig):
- super().__init__(config)
- self.config = config
- @abstractmethod
- async def add_job(self, func, trigger, **kwargs):
- pass
- @abstractmethod
- async def start(self):
- pass
- @abstractmethod
- async def shutdown(self):
- pass
|