Module Sihl.Container
Lifecycle
Every service has a lifecycle, meaning it can be started and stopped. *
type lifecycle
= Sihl__.Core_container.lifecycle
=
{
type_name : string;
implementation_name : string;
id : int;
dependencies : unit -> lifecycle list;
start : unit -> unit Lwt.t;
stop : unit -> unit Lwt.t;
}
Service
A service has a start
and stop
function and a lifecycle. *
module Service : sig ... end
val start_services : Service.t list -> lifecycle list Lwt.t
start_services services
starts a list ofservices
. The order does not matter as the services are started in the order of their dependencies. (No service is started before its dependency)
val stop_services : Service.t list -> unit Lwt.t
stop_services ctx services
stops a list ofservices
with a contextctx
. The order does not matter as the services are stopped in the order of their dependencies. (No service is stopped after its dependency)
module Map : sig ... end