(* $Id: netplex_workload.mli 1452 2010-05-14 15:17:49Z gerd $ *) (** Workload management * * Workload managers control when additional containers are started or * idle containers are stopped. See {!Netplex_intro.workload} for * additional documentation how they are configured. *) open Netplex_types val create_constant_workload_manager : ?restart:bool -> int -> workload_manager (** A constant number of threads is created (the int argument). * * [restart]: If threads * crash, new threads are created until the specified number is again * reached. This is on by default. *) val constant_workload_manager_factory : workload_manager_factory (** Reads a workload_manager section like * * {[ workload_manager { * type = "constant"; * threads = <n>; * } * ]} *) class type dynamic_workload_config = object method max_jobs_per_thread : int (** How many jobs every thread can execute concurrently until it is * considered as fully loaded. For configurations where the threads * can only handle one connection at a time this number must be 1. *) method recommended_jobs_per_thread : int (** The number of jobs every thread can execute with normal * service quality. Must be less than or equal to * [max_jobs_per_thread] *) method min_free_job_capacity : int (** The manager starts as many threads as required to ensure that this * number of jobs can be executed. Must be at least 1. *) method max_free_job_capacity : int (** If more job capacity is available than this number, threads are * terminated. Must be greater than or equal to * [min_free_job_capacity]. *) method inactivity_timeout : int (** After this number of seconds a free thread can be terminated *) method max_threads : int (** The manager does not start more threads than this number *) end val create_dynamic_workload_manager : dynamic_workload_config -> workload_manager val dynamic_workload_manager_factory : workload_manager_factory (** Reads a workload_manager section like * * {[ workload_manager { * type = "dynamic"; * max_jobs_per_thread = <n>; * min_free_jobs_capacity = <n>; * max_free_jobs_capacity = <n>; * max_threads = <n>; * } * ]} *) val workload_manager_factories : workload_manager_factory list (** All built-in workload manager factories *)