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)[source]

Base class for all supervisor strategies.

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

Service is starting.

async on_stop() → None[source]

Service is being stopped/restarted.

async start_services(services: List[mode.types.services.ServiceT]) → None[source]
async start_service(service: mode.types.services.ServiceT) → None[source]
async restart_services(services: List[mode.types.services.ServiceT]) → None[source]
async stop_services(services: List[mode.types.services.ServiceT]) → None[source]
async restart_service(service: mode.types.services.ServiceT) → None[source]
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)[source]

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)[source]

Supervisor that restarts all services when a service crashes.

async restart_services(services: List[mode.types.services.ServiceT]) → None[source]
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)[source]

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

async restart_services(services: List[mode.types.services.ServiceT]) → None[source]
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)[source]

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[source]