From b0bd4352794a0984515c3ce573c90167d9d9e505 Mon Sep 17 00:00:00 2001 From: Drew Gonzales <6912711+drewgonzales360@users.noreply.github.com> Date: Sat, 23 Mar 2024 11:54:40 -0700 Subject: [PATCH] Allow more time for requestJobCtx (#699) * allow more time for jobout request * gofmt --- scheduler_test.go | 42 ++++++++++++++++++++++++++++++++++++++++++ util.go | 8 +------- 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/scheduler_test.go b/scheduler_test.go index 4689b23..a380ac6 100644 --- a/scheduler_test.go +++ b/scheduler_test.go @@ -1350,6 +1350,48 @@ func TestScheduler_RemoveJob(t *testing.T) { } } +func TestScheduler_RemoveLotsOfJobs(t *testing.T) { + goleak.VerifyNone(t) + tests := []struct { + name string + numJobs int + }{ + { + "10 successes", + 10, + }, + { + "100 successes", + 100, + }, + { + "1000 successes", + 1000, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + s := newTestScheduler(t) + + var ids []uuid.UUID + for i := 0; i < tt.numJobs; i++ { + j, err := s.NewJob(DurationJob(time.Second), NewTask(func() { time.Sleep(20 * time.Second) })) + require.NoError(t, err) + ids = append(ids, j.ID()) + } + + for _, id := range ids { + err := s.RemoveJob(id) + require.NoError(t, err) + } + + assert.Len(t, s.Jobs(), 0) + require.NoError(t, s.Shutdown()) + }) + } +} + func TestScheduler_WithEventListeners(t *testing.T) { goleak.VerifyNone(t) diff --git a/util.go b/util.go index 8bff942..18986b3 100644 --- a/util.go +++ b/util.go @@ -44,18 +44,12 @@ func requestJob(id uuid.UUID, ch chan jobOutRequest) *internalJob { func requestJobCtx(ctx context.Context, id uuid.UUID, ch chan jobOutRequest) *internalJob { resp := make(chan internalJob, 1) - select { - case <-ctx.Done(): - return nil - default: - } - select { case ch <- jobOutRequest{ id: id, outChan: resp, }: - default: + case <-ctx.Done(): return nil } var j internalJob