summaryrefslogtreecommitdiff
path: root/makima/src/daemon/config.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/daemon/config.rs')
-rw-r--r--makima/src/daemon/config.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/makima/src/daemon/config.rs b/makima/src/daemon/config.rs
index 476b57e..9a00166 100644
--- a/makima/src/daemon/config.rs
+++ b/makima/src/daemon/config.rs
@@ -198,10 +198,15 @@ pub struct ProcessConfig {
#[serde(default, alias = "disableverbose")]
pub disable_verbose: bool,
- /// Maximum concurrent tasks.
+ /// Maximum concurrent tasks (global cap).
#[serde(default = "default_max_tasks", alias = "maxconcurrenttasks")]
pub max_concurrent_tasks: u32,
+ /// Maximum concurrent tasks per contract/supervisor.
+ /// Standalone tasks are treated as their own single-task contract.
+ #[serde(default = "default_max_tasks_per_contract", alias = "maxtaskspercontract")]
+ pub max_tasks_per_contract: u32,
+
/// Default timeout for tasks in seconds (0 = no timeout).
#[serde(default, alias = "defaulttimeoutsecs")]
pub default_timeout_secs: u64,
@@ -232,6 +237,10 @@ fn default_max_tasks() -> u32 {
4
}
+fn default_max_tasks_per_contract() -> u32 {
+ 10
+}
+
impl Default for ProcessConfig {
fn default() -> Self {
Self {
@@ -241,6 +250,7 @@ impl Default for ProcessConfig {
enable_permissions: false,
disable_verbose: false,
max_concurrent_tasks: default_max_tasks(),
+ max_tasks_per_contract: default_max_tasks_per_contract(),
default_timeout_secs: 0,
env_vars: HashMap::new(),
bubblewrap: BubblewrapConfig::default(),
@@ -561,9 +571,11 @@ impl DaemonConfig {
enable_permissions: false,
disable_verbose: false,
max_concurrent_tasks: 2,
+ max_tasks_per_contract: 10,
default_timeout_secs: 0,
env_vars: HashMap::new(),
bubblewrap: BubblewrapConfig::default(),
+ heartbeat_commit_interval_secs: 300,
},
local_db: LocalDbConfig {
path: PathBuf::from("/tmp/makima-daemon-test/state.db"),