actors.py 695 B

1234567891011121314151617181920212223
  1. __package__ = 'archivebox.crawls'
  2. from typing import ClassVar
  3. from crawls.models import Crawl
  4. from crawls.statemachines import CrawlMachine
  5. from actors.actor import ActorType, State
  6. class CrawlActor(ActorType[Crawl]):
  7. """The Actor that manages the lifecycle of all Crawl objects"""
  8. Model = Crawl
  9. StateMachineClass = CrawlMachine
  10. ACTIVE_STATE: ClassVar[State] = CrawlMachine.started
  11. FINAL_STATES: ClassVar[list[State]] = CrawlMachine.final_states
  12. STATE_FIELD_NAME: ClassVar[str] = Crawl.state_field_name
  13. MAX_CONCURRENT_ACTORS: ClassVar[int] = 3
  14. MAX_TICK_TIME: ClassVar[int] = 10
  15. CLAIM_FROM_TOP_N: ClassVar[int] = MAX_CONCURRENT_ACTORS * 10