# Module Netplex_workload

    module Netplex_workload: sig .. end

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.

    val create_constant_workload_manager : ?restart:bool ->
           ?greedy_accepts:bool ->
           ?max_jobs_per_thread:int -> int -> Netplex_types.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.

`greedy_accepts`: whether greedy accepts are allowed (default: false)

`max_jobs_per_thread`: if passed, limits the number of jobs (connections) that can be simultaneously processed by a thread/process. By default there is no limit.

    val constant_workload_manager_factory : Netplex_types.workload_manager_factory

Reads a workload_manager section like

     workload_manager {
          type = "constant";
          threads = <n>;
          max_jobs_per_thread = <n>;
          greedy_accepts = <bool>;
        }

    class type dynamic_workload_config = object .. end

    val create_dynamic_workload_manager : dynamic_workload_config -> Netplex_types.workload_manager

    val dynamic_workload_manager_factory : Netplex_types.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>;
          greedy_accepts = <bool>;
        }

    val workload_manager_factories : Netplex_types.workload_manager_factory list

All built-in workload manager factories