Skip to content

Commit de3151c

Browse files
committed
accelerate retry
Signed-off-by: roc <[email protected]>
1 parent 1e3eafc commit de3151c

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

internal/controller/clbbinding.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ func (r *CLBBindingReconciler[T]) sync(ctx context.Context, bd T) (result ctrl.R
7171
case portpool.ErrNewLBCreated, portpool.ErrNewLBCreating:
7272
return result, nil
7373
case portpool.ErrNoLbReady:
74-
result.Requeue = true
74+
result.RequeueAfter = time.Second
7575
log.FromContext(ctx).Info("requeue due to lb not ready yet")
7676
return result, nil
7777
case ErrNeedRetry:
78-
result.Requeue = true
78+
result.RequeueAfter = 20 * time.Millisecond
7979
log.FromContext(ctx).Info("requeue due to listener need to be re-allocated")
8080
return result, nil
8181
case portpool.ErrNoPortAvailable:
@@ -98,7 +98,7 @@ func (r *CLBBindingReconciler[T]) sync(ctx context.Context, bd T) (result ctrl.R
9898
}
9999
return result, errors.WithStack(err)
100100
} else { // 端口池存在,但还没更新到分配器缓存,重新入队
101-
result.Requeue = true
101+
result.RequeueAfter = 20 * time.Millisecond
102102
log.FromContext(ctx).Info("requeue due to port pool not ready yet")
103103
return result, nil
104104
}
@@ -107,7 +107,7 @@ func (r *CLBBindingReconciler[T]) sync(ctx context.Context, bd T) (result ctrl.R
107107
if clb.IsRequestLimitExceededError(errCause) {
108108
result.RequeueAfter = time.Second
109109
log.FromContext(ctx).Info("requeue due to clb api request limit exceeded when reconciling")
110-
return result, errors.WithStack(err)
110+
return result, nil
111111
}
112112

113113
if !apierrors.IsConflict(errCause) { // 其它非资源冲突的错误,将错误记录到 event 和状态中方便排障
@@ -684,7 +684,7 @@ func (r *CLBBindingReconciler[T]) cleanup(ctx context.Context, bd T) (result ctr
684684
continue
685685
case clb.ErrOtherListenerNotFound: // 因同一批次删除的其它监听器不存在导致删除失败,需重试
686686
log.Error(err, "requeue due to delete listener failed cuz other listener not found")
687-
result.Requeue = true
687+
result.RequeueAfter = 20 * time.Millisecond
688688
return result, nil
689689
}
690690
if clb.IsLoadBalancerNotExistsError(e) { // lb 不存在,忽略

internal/controller/util.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package controller
22

33
import (
44
"context"
5+
"time"
56

67
"github.com/imroc/tke-extend-network-controller/internal/constant"
78
"github.com/imroc/tke-extend-network-controller/pkg/kube"
@@ -31,7 +32,7 @@ func Reconcile[T client.Object](ctx context.Context, req ctrl.Request, apiClient
3132
if apierrors.IsConflict(err) {
3233
if !result.Requeue && result.RequeueAfter == 0 {
3334
log.FromContext(ctx).Info("requeue due to k8s api conflict")
34-
result.Requeue = true
35+
result.RequeueAfter = 20 * time.Millisecond
3536
}
3637
return result, nil
3738
}

0 commit comments

Comments
 (0)