fix: gate scheduler task concurrency

This commit is contained in:
2026-09-20 20:53:58 +00:00
parent bca8096491
commit cbbe14d6b5
7 changed files with 111 additions and 3 deletions
+6 -1
View File
@@ -57,6 +57,7 @@ type Facade struct {
Registry *Registry
Capabilities Capabilities
Upstream Upstream
OnTerminal func(taskassignment.Assignment)
}
func (f *Facade) Handler() (string, http.Handler) {
@@ -98,7 +99,11 @@ func (f *Facade) UpdateTask(ctx context.Context, request *connect.Request[runner
if request.Msg.GetState().GetId() != assignment.Task.GetId() {
return nil, connect.NewError(connect.CodePermissionDenied, errors.New("task update does not match assignment"))
}
return f.Upstream.UpdateTask(ctx, connect.NewRequest(request.Msg))
response, err := f.Upstream.UpdateTask(ctx, connect.NewRequest(request.Msg))
if err == nil && request.Msg.GetState().GetResult() != runnerv1.Result_RESULT_UNSPECIFIED && f.OnTerminal != nil {
f.OnTerminal(assignment)
}
return response, err
}
func (f *Facade) UpdateLog(ctx context.Context, request *connect.Request[runnerv1.UpdateLogRequest]) (*connect.Response[runnerv1.UpdateLogResponse], error) {