diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2019-12-17 12:16:54 +0800 |
---|---|---|
committer | techknowlogick <techknowlogick@gitea.io> | 2019-12-16 23:16:54 -0500 |
commit | ffc904b1e0635d17e55b5fbdea4e18832ee2276d (patch) | |
tree | 209691d128fb2e23476e0b1ac67c51c6f5b693de /modules/migrations/base | |
parent | d1a49977b089afefc40172711d02eb795d2234de (diff) | |
download | gitea-ffc904b1e0635d17e55b5fbdea4e18832ee2276d.tar.gz gitea-ffc904b1e0635d17e55b5fbdea4e18832ee2276d.zip |
Sleep longer if request speed is over github limitation (#9335)
* Sleep longer if request speed is over github limitation
* improve code
* remove unused code
* fix lint
* Use github's rate limit remain value to determine how long to sleep
* Save reset time when finished github api request
* fix bug
* fix lint
* Add context.Context for sleep
* fix test
* improve code
* fix bug and lint
* fix import order
Diffstat (limited to 'modules/migrations/base')
-rw-r--r-- | modules/migrations/base/downloader.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/modules/migrations/base/downloader.go b/modules/migrations/base/downloader.go index b853ec3020..87ade5c02e 100644 --- a/modules/migrations/base/downloader.go +++ b/modules/migrations/base/downloader.go @@ -6,6 +6,7 @@ package base import ( + "context" "time" "code.gitea.io/gitea/modules/structs" @@ -13,6 +14,7 @@ import ( // Downloader downloads the site repo informations type Downloader interface { + SetContext(context.Context) GetRepoInfo() (*Repository, error) GetTopics() ([]string, error) GetMilestones() ([]*Milestone, error) @@ -30,6 +32,10 @@ type DownloaderFactory interface { GitServiceType() structs.GitServiceType } +var ( + _ Downloader = &RetryDownloader{} +) + // RetryDownloader retry the downloads type RetryDownloader struct { Downloader @@ -46,6 +52,11 @@ func NewRetryDownloader(downloader Downloader, retryTimes, retryDelay int) *Retr } } +// SetContext set context +func (d *RetryDownloader) SetContext(ctx context.Context) { + d.Downloader.SetContext(ctx) +} + // GetRepoInfo returns a repository information with retry func (d *RetryDownloader) GetRepoInfo() (*Repository, error) { var ( |