diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-11-16 16:30:55 +0100 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-11-17 11:39:22 +0100 |
| commit | 1dcdca7e09e34cdde53f6d14db56780688e19eae (patch) | |
| tree | f0982efeacf4910a73eb3133a54b50352984018f /opendc-workflow/opendc-workflow-workload/src | |
| parent | 1cfd967d6d27f339b264449ff2a1adeb705de598 (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')
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) } } } } |
