fix: update the jobservice hook retry concurrency (#17026)

Change the jobservice hook max retry concurrency from 512 to same with
the js worker numbers.

Signed-off-by: chlins <chenyuzh@vmware.com>
This commit is contained in:
Chenyu Zhang 2022-06-20 10:34:13 +08:00 committed by GitHub
parent 3f28acb31e
commit 712fed39fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 6 deletions

View File

@ -32,8 +32,6 @@ import (
const (
// Backoff duration of direct retrying.
errRetryBackoff = 5 * time.Minute
// Max concurrency of retrying goroutines.
maxConcurrency = 512
)
// Agent is designed to handle the hook events with reasonable numbers of concurrent threads.
@ -74,13 +72,13 @@ type basicAgent struct {
}
// NewAgent is constructor of basic agent
func NewAgent(ctx *env.Context, ns string, redisPool *redis.Pool) Agent {
func NewAgent(ctx *env.Context, ns string, redisPool *redis.Pool, retryConcurrency uint) Agent {
return &basicAgent{
context: ctx.SystemContext,
namespace: ns,
client: NewClient(ctx.SystemContext),
redisPool: redisPool,
tokens: make(chan struct{}, maxConcurrency),
tokens: make(chan struct{}, retryConcurrency),
}
}

View File

@ -65,7 +65,7 @@ func NewClient(ctx context.Context) Client {
}
client := &http.Client{
Timeout: 15 * time.Second,
Timeout: 30 * time.Second,
Transport: transport,
}

View File

@ -131,7 +131,8 @@ func (bs *Bootstrap) LoadAndRun(ctx context.Context, cancel context.CancelFunc)
// Create stats manager
manager = mgt.NewManager(ctx, namespace, redisPool)
// Create hook agent, it's a singleton object
hookAgent := hook.NewAgent(rootContext, namespace, redisPool)
// the retryConcurrency keep same with worker num
hookAgent := hook.NewAgent(rootContext, namespace, redisPool, workerNum)
hookCallback := func(URL string, change *job.StatusChange) error {
msg := fmt.Sprintf(
"status change: job=%s, status=%s, revision=%d",