mode.supervisors

Supervisors.

Naming here is taken from Erlang ;-)

Don’t know supervisors? Read about them them here: http://learnyousomeerlang.com/supervisors

class mode.supervisors.SupervisorStrategy(*services: mode.types.services.ServiceT, max_restarts: Union[datetime.timedelta, float, str] = 100.0, over: Union[datetime.timedelta, float, str] = 1.0, raises: Type[BaseException] = <class 'mode.exceptions.MaxRestartsExceeded'>, replacement: Callable[[mode.types.services.ServiceT, int], Awaitable[mode.types.services.ServiceT]] = None, **kwargs: Any)

Base class for all supervisor strategies.

wakeup() → None
add(*services: mode.types.services.ServiceT) → None
discard(*services: mode.types.services.ServiceT) → None
insert(index: int, service: mode.types.services.ServiceT) → None
service_operational(service: mode.types.services.ServiceT) → bool
async run_until_complete() → None
async on_start() → None

Service is starting.

async on_stop() → None

Service is being stopped/restarted.

async start_services(services: List[mode.types.services.ServiceT]) → None
async start_service(service: mode.types.services.ServiceT) → None
async restart_services(services: List[mode.types.services.ServiceT]) → None
async stop_services(services: List[mode.types.services.ServiceT]) → None
async restart_service(service: mode.types.services.ServiceT) → None
property label

Label used for graphs.

logger = <Logger mode.supervisors (WARNING)>
class mode.supervisors.OneForOneSupervisor(*services: mode.types.services.ServiceT, max_restarts: Union[datetime.timedelta, float, str] = 100.0, over: Union[datetime.timedelta, float, str] = 1.0, raises: Type[BaseException] = <class 'mode.exceptions.MaxRestartsExceeded'>, replacement: Callable[[mode.types.services.ServiceT, int], Awaitable[mode.types.services.ServiceT]] = None, **kwargs: Any)

Supervisor simply restarts any crashed service.

logger = <Logger mode.supervisors (WARNING)>
class mode.supervisors.OneForAllSupervisor(*services: mode.types.services.ServiceT, max_restarts: Union[datetime.timedelta, float, str] = 100.0, over: Union[datetime.timedelta, float, str] = 1.0, raises: Type[BaseException] = <class 'mode.exceptions.MaxRestartsExceeded'>, replacement: Callable[[mode.types.services.ServiceT, int], Awaitable[mode.types.services.ServiceT]] = None, **kwargs: Any)

Supervisor that restarts all services when a service crashes.

async restart_services(services: List[mode.types.services.ServiceT]) → None
logger = <Logger mode.supervisors (WARNING)>
class mode.supervisors.ForfeitOneForOneSupervisor(*services: mode.types.services.ServiceT, max_restarts: Union[datetime.timedelta, float, str] = 100.0, over: Union[datetime.timedelta, float, str] = 1.0, raises: Type[BaseException] = <class 'mode.exceptions.MaxRestartsExceeded'>, replacement: Callable[[mode.types.services.ServiceT, int], Awaitable[mode.types.services.ServiceT]] = None, **kwargs: Any)

Supervisor that if a service crashes, we do not restart it.

async restart_services(services: List[mode.types.services.ServiceT]) → None
logger = <Logger mode.supervisors (WARNING)>
class mode.supervisors.ForfeitOneForAllSupervisor(*services: mode.types.services.ServiceT, max_restarts: Union[datetime.timedelta, float, str] = 100.0, over: Union[datetime.timedelta, float, str] = 1.0, raises: Type[BaseException] = <class 'mode.exceptions.MaxRestartsExceeded'>, replacement: Callable[[mode.types.services.ServiceT, int], Awaitable[mode.types.services.ServiceT]] = None, **kwargs: Any)

If one service in the group crashes, we give up on all of them.

logger = <Logger mode.supervisors (WARNING)>
async restart_services(services: List[mode.types.services.ServiceT]) → None