From 77e6c60f4bf09fdf21856e0dd1793dc12dc50c23 Mon Sep 17 00:00:00 2001 From: dxyinme Date: Mon, 20 May 2024 19:52:26 +0800 Subject: [PATCH] add --- dcron.go | 7 ++++--- inodepool_test.go | 8 ++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/dcron.go b/dcron.go index 9126a8d..7da7251 100644 --- a/dcron.go +++ b/dcron.go @@ -281,18 +281,19 @@ func (d *Dcron) startNodePool() error { } // Stop job -func (d *Dcron) Stop() { +func (d *Dcron) Stop() context.Context { tick := time.NewTicker(time.Millisecond) if !d.runningLocally { d.nodePool.Stop(context.Background()) } for range tick.C { if atomic.CompareAndSwapInt32(&d.running, dcronRunning, dcronStopped) { - d.cr.Stop() d.logger.Infof("dcron stopped") - return + return d.cr.Stop() } } + // We ensure this function won't return nil. + return nil } func (d *Dcron) reRunRecentJobs(jobNames []string) { diff --git a/inodepool_test.go b/inodepool_test.go index 068db54..fb4bac2 100644 --- a/inodepool_test.go +++ b/inodepool_test.go @@ -86,7 +86,7 @@ func (ts *TestINodePoolSuite) declareRedisZSetDrivers(clients *[]*redis.Client, } } -func (ts *TestINodePoolSuite) runCheckJobAvailable(numberOfNodes int, ServiceName string, nodePools *[]dcron.INodePool, updateDuration time.Duration) { +func (ts *TestINodePoolSuite) runCheckJobAvailable(numberOfNodes int, nodePools *[]dcron.INodePool, updateDuration time.Duration) { for i := 0; i < numberOfNodes; i++ { err := (*nodePools)[i].Start(context.Background()) ts.Require().Nil(err) @@ -123,7 +123,7 @@ func (ts *TestINodePoolSuite) TestMultiNodesRedis() { for i := 0; i < numberOfNodes; i++ { nodePools = append(nodePools, dcron.NewNodePool(ServiceName, drivers[i], updateDuration, ts.defaultHashReplicas, nil)) } - ts.runCheckJobAvailable(numberOfNodes, ServiceName, &nodePools, updateDuration) + ts.runCheckJobAvailable(numberOfNodes, &nodePools, updateDuration) ts.stopAllNodePools(nodePools) } @@ -142,7 +142,7 @@ func (ts *TestINodePoolSuite) TestMultiNodesEtcd() { for i := 0; i < numberOfNodes; i++ { nodePools = append(nodePools, dcron.NewNodePool(ServiceName, drivers[i], updateDuration, ts.defaultHashReplicas, nil)) } - ts.runCheckJobAvailable(numberOfNodes, ServiceName, &nodePools, updateDuration) + ts.runCheckJobAvailable(numberOfNodes, &nodePools, updateDuration) ts.stopAllNodePools(nodePools) } @@ -161,7 +161,7 @@ func (ts *TestINodePoolSuite) TestMultiNodesRedisZSet() { for i := 0; i < numberOfNodes; i++ { nodePools = append(nodePools, dcron.NewNodePool(ServiceName, drivers[i], updateDuration, ts.defaultHashReplicas, nil)) } - ts.runCheckJobAvailable(numberOfNodes, ServiceName, &nodePools, updateDuration) + ts.runCheckJobAvailable(numberOfNodes, &nodePools, updateDuration) ts.stopAllNodePools(nodePools) }