Create a new runner async after one gets claimed

This commit is contained in:
Maximilian Paß
2021-10-21 11:31:57 +02:00
parent dff3df9cc7
commit 055fa43227
2 changed files with 9 additions and 4 deletions

View File

@ -234,10 +234,12 @@ func (n *NomadEnvironment) UpdateRunnerSpecs(apiClient nomad.ExecutorAPI) error
func (n *NomadEnvironment) Sample(apiClient nomad.ExecutorAPI) (runner.Runner, bool) { func (n *NomadEnvironment) Sample(apiClient nomad.ExecutorAPI) (runner.Runner, bool) {
r, ok := n.idleRunners.Sample() r, ok := n.idleRunners.Sample()
if ok { if ok {
err := n.createRunner(apiClient) go func() {
if err != nil { err := n.createRunner(apiClient)
log.WithError(err).WithField("environmentID", n.ID()).Error("Couldn't create new runner for claimed one") if err != nil {
} log.WithError(err).WithField("environmentID", n.ID()).Error("Couldn't create new runner for claimed one")
}
}()
} }
return r, ok return r, ok
} }

View File

@ -141,15 +141,18 @@ func (m *NomadRunnerManager) Claim(environmentID dto.EnvironmentID, duration int
if !ok { if !ok {
return nil, ErrUnknownExecutionEnvironment return nil, ErrUnknownExecutionEnvironment
} }
log.Debug("Before Sample")
runner, ok := environment.Sample(m.apiClient) runner, ok := environment.Sample(m.apiClient)
if !ok { if !ok {
return nil, ErrNoRunnersAvailable return nil, ErrNoRunnersAvailable
} }
m.usedRunners.Add(runner) m.usedRunners.Add(runner)
log.Debug("Before Mark Runner As Used")
err := m.apiClient.MarkRunnerAsUsed(runner.ID(), duration) err := m.apiClient.MarkRunnerAsUsed(runner.ID(), duration)
if err != nil { if err != nil {
return nil, fmt.Errorf("can't mark runner as used: %w", err) return nil, fmt.Errorf("can't mark runner as used: %w", err)
} }
log.Debug("After Mark Runner As Used")
runner.SetupTimeout(time.Duration(duration) * time.Second) runner.SetupTimeout(time.Duration(duration) * time.Second)
return runner, nil return runner, nil