Skip to content

Commit

Permalink
Optimize SetRunnerMetaUsed
Browse files Browse the repository at this point in the history
to send a second request to Nomad only when the meta values change.
  • Loading branch information
mpass99 authored and MrSerth committed Sep 12, 2024
1 parent afa54da commit c5718b5
Showing 1 changed file with 17 additions and 9 deletions.
26 changes: 17 additions & 9 deletions internal/nomad/nomad.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,21 +176,29 @@ func (a *APIClient) LoadRunnerJobs(environmentID dto.EnvironmentID) ([]*nomadApi
}

func (a *APIClient) SetRunnerMetaUsed(runnerID string, used bool, duration int) error {
newMetaUsedValue := ConfigMetaUsedValue
if !used {
newMetaUsedValue = ConfigMetaUnusedValue
}
newMetaTimeoutValue := strconv.Itoa(duration)

job, err := a.job(runnerID)
if err != nil {
return fmt.Errorf("couldn't retrieve job info: %w", err)
}
configTaskGroup := FindAndValidateConfigTaskGroup(job)
if used {
configTaskGroup.Meta[ConfigMetaUsedKey] = ConfigMetaUsedValue
configTaskGroup.Meta[ConfigMetaTimeoutKey] = strconv.Itoa(duration)
} else {
configTaskGroup.Meta[ConfigMetaUsedKey] = ConfigMetaUnusedValue
}
metaUsedDiffers := configTaskGroup.Meta[ConfigMetaUsedKey] != newMetaUsedValue
metaTimeoutDiffers := configTaskGroup.Meta[ConfigMetaTimeoutKey] != newMetaTimeoutValue

_, err = a.RegisterNomadJob(job)
if err != nil {
return fmt.Errorf("couldn't update runner config: %w", err)
if metaUsedDiffers || (used && metaTimeoutDiffers) {
configTaskGroup.Meta[ConfigMetaUsedKey] = newMetaUsedValue
if used {
configTaskGroup.Meta[ConfigMetaTimeoutKey] = newMetaTimeoutValue
}
_, err = a.RegisterNomadJob(job)
if err != nil {
return fmt.Errorf("couldn't update runner config: %w", err)
}
}
return nil
}
Expand Down

0 comments on commit c5718b5

Please sign in to comment.