Skip to content

Conversation

@Mickls
Copy link

@Mickls Mickls commented Mar 12, 2022

接入多平台业务时总会遇到一些需要重试的操作,这个commit实现了简单的函数重试逻辑

Copy link
Contributor

@Ehco1996 Ehco1996 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

restLGTM

}
}

func Retry(retryFunc RetryFunc, opt ...Option) error {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it seems that use a ctx param is more straightforward than use aContext option?

o(retryConfig)
}
for i := uint(0); i < retryConfig.times; i++ {
err := retryFunc()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe also add a func shouldRetry(err) to check if this the current scene is ready for retry, not all funcs are idempotent

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants