summaryrefslogtreecommitdiff
path: root/opendc-workflow/opendc-workflow-workload/src
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-11-16 16:30:55 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-11-17 11:39:22 +0100
commit1dcdca7e09e34cdde53f6d14db56780688e19eae (patch)
treef0982efeacf4910a73eb3133a54b50352984018f /opendc-workflow/opendc-workflow-workload/src
parent1cfd967d6d27f339b264449ff2a1adeb705de598 (diff)
refactor(workflow): Remove WorkflowSchedulerMode
This change removes the WorkflowSchedulerMode interface in favour of an integrated timer scheduler approach that batches scheduling cycles over a user-specified quantum. This quantum can be lowered to a small value to get the interactive behavior. There is no replacement for the random behavior, but we believe that such a policy makes no sense in a real-world scenario.
Diffstat (limited to 'opendc-workflow/opendc-workflow-workload/src')
-rw-r--r--opendc-workflow/opendc-workflow-workload/src/main/kotlin/org/opendc/workflow/workload/WorkflowSchedulerSpec.kt4
-rw-r--r--opendc-workflow/opendc-workflow-workload/src/main/kotlin/org/opendc/workflow/workload/WorkflowServiceHelper.kt6
2 files changed, 5 insertions, 5 deletions
diff --git a/opendc-workflow/opendc-workflow-workload/src/main/kotlin/org/opendc/workflow/workload/WorkflowSchedulerSpec.kt b/opendc-workflow/opendc-workflow-workload/src/main/kotlin/org/opendc/workflow/workload/WorkflowSchedulerSpec.kt
index b22e16d9..d6a375b6 100644
--- a/opendc-workflow/opendc-workflow-workload/src/main/kotlin/org/opendc/workflow/workload/WorkflowSchedulerSpec.kt
+++ b/opendc-workflow/opendc-workflow-workload/src/main/kotlin/org/opendc/workflow/workload/WorkflowSchedulerSpec.kt
@@ -22,17 +22,17 @@
package org.opendc.workflow.workload
-import org.opendc.workflow.service.scheduler.WorkflowSchedulerMode
import org.opendc.workflow.service.scheduler.job.JobAdmissionPolicy
import org.opendc.workflow.service.scheduler.job.JobOrderPolicy
import org.opendc.workflow.service.scheduler.task.TaskEligibilityPolicy
import org.opendc.workflow.service.scheduler.task.TaskOrderPolicy
+import java.time.Duration
/**
* Specification of the scheduling policies of the workflow scheduler.
*/
public data class WorkflowSchedulerSpec(
- val batchMode: WorkflowSchedulerMode,
+ val schedulingQuantum: Duration,
val jobAdmissionPolicy: JobAdmissionPolicy,
val jobOrderPolicy: JobOrderPolicy,
val taskEligibilityPolicy: TaskEligibilityPolicy,
diff --git a/opendc-workflow/opendc-workflow-workload/src/main/kotlin/org/opendc/workflow/workload/WorkflowServiceHelper.kt b/opendc-workflow/opendc-workflow-workload/src/main/kotlin/org/opendc/workflow/workload/WorkflowServiceHelper.kt
index 236a036b..0198900f 100644
--- a/opendc-workflow/opendc-workflow-workload/src/main/kotlin/org/opendc/workflow/workload/WorkflowServiceHelper.kt
+++ b/opendc-workflow/opendc-workflow-workload/src/main/kotlin/org/opendc/workflow/workload/WorkflowServiceHelper.kt
@@ -49,7 +49,7 @@ public class WorkflowServiceHelper(
private val clock: Clock,
private val computeClient: ComputeClient,
private val schedulerSpec: WorkflowSchedulerSpec
- ) : AutoCloseable {
+) : AutoCloseable {
/**
* The [WorkflowService] that is constructed by this runner.
*/
@@ -76,7 +76,7 @@ public class WorkflowServiceHelper(
clock,
meterProvider,
computeClient,
- mode = schedulerSpec.batchMode,
+ schedulerSpec.schedulingQuantum,
jobAdmissionPolicy = schedulerSpec.jobAdmissionPolicy,
jobOrderPolicy = schedulerSpec.jobOrderPolicy,
taskEligibilityPolicy = schedulerSpec.taskEligibilityPolicy,
@@ -111,7 +111,7 @@ public class WorkflowServiceHelper(
delay(((submitTime - offset) - clock.millis()).coerceAtLeast(0))
}
- launch { service.run(job) }
+ launch { service.invoke(job) }
}
}
}