Finalize reliability configs
This commit is contained in:
@@ -7,8 +7,10 @@ host: "[::]" # do not change this if you are running it inside a docker containe
|
|||||||
port: 9999 # do not change this if you are running it inside a docker container
|
port: 9999 # do not change this if you are running it inside a docker container
|
||||||
concurrent_workers: 200
|
concurrent_workers: 200
|
||||||
check_for_changes_every_secs: 15
|
check_for_changes_every_secs: 15
|
||||||
|
# reliability configs
|
||||||
unrestrict_workers: 10 # since unrestricting has a different rate limit, use a different worker pool. decrease this if you are getting 429s
|
unrestrict_workers: 10 # since unrestricting has a different rate limit, use a different worker pool. decrease this if you are getting 429s
|
||||||
release_unrestrict_after_ms: 100 # wait time for every unrestrict worker to be released. increase this if you are getting 429s
|
release_unrestrict_after_ms: 100 # wait time for every unrestrict worker to be released. increase this if you are getting 429s
|
||||||
|
rate_limit_sleep_secs: 6 # wait time after getting a 429 from Real-Debrid API
|
||||||
|
|
||||||
enable_repair: true # BEWARE! THERE CAN ONLY BE 1 INSTANCE OF ZURG THAT SHOULD REPAIR YOUR TORRENTS
|
enable_repair: true # BEWARE! THERE CAN ONLY BE 1 INSTANCE OF ZURG THAT SHOULD REPAIR YOUR TORRENTS
|
||||||
retain_folder_name_extension: false # if true, zurg won't modify the filenames from real-debrid
|
retain_folder_name_extension: false # if true, zurg won't modify the filenames from real-debrid
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ type ConfigInterface interface {
|
|||||||
ShouldForceIPv6() bool
|
ShouldForceIPv6() bool
|
||||||
GetUnrestrictWorkers() int
|
GetUnrestrictWorkers() int
|
||||||
GetReleaseUnrestrictAfterMs() int
|
GetReleaseUnrestrictAfterMs() int
|
||||||
|
GetRateLimitSleepSeconds() int
|
||||||
}
|
}
|
||||||
|
|
||||||
type ZurgConfig struct {
|
type ZurgConfig struct {
|
||||||
@@ -32,6 +33,7 @@ type ZurgConfig struct {
|
|||||||
NumOfWorkers int `yaml:"concurrent_workers"`
|
NumOfWorkers int `yaml:"concurrent_workers"`
|
||||||
UnrestrictWorkers int `yaml:"unrestrict_workers"`
|
UnrestrictWorkers int `yaml:"unrestrict_workers"`
|
||||||
ReleaseUnrestrictAfterMs int `yaml:"release_unrestrict_after_ms"`
|
ReleaseUnrestrictAfterMs int `yaml:"release_unrestrict_after_ms"`
|
||||||
|
RateLimitSleepSeconds int `yaml:"rate_limit_sleep_secs"`
|
||||||
RefreshEverySeconds int `yaml:"check_for_changes_every_secs"`
|
RefreshEverySeconds int `yaml:"check_for_changes_every_secs"`
|
||||||
CanRepair bool `yaml:"enable_repair"`
|
CanRepair bool `yaml:"enable_repair"`
|
||||||
OnLibraryUpdate string `yaml:"on_library_update"`
|
OnLibraryUpdate string `yaml:"on_library_update"`
|
||||||
@@ -135,3 +137,10 @@ func (z *ZurgConfig) GetReleaseUnrestrictAfterMs() int {
|
|||||||
}
|
}
|
||||||
return z.ReleaseUnrestrictAfterMs
|
return z.ReleaseUnrestrictAfterMs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (z *ZurgConfig) GetRateLimitSleepSeconds() int {
|
||||||
|
if z.RateLimitSleepSeconds == 0 {
|
||||||
|
return 4
|
||||||
|
}
|
||||||
|
return z.RateLimitSleepSeconds
|
||||||
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ func (r *HTTPClient) Do(req *http.Request) (*http.Response, error) {
|
|||||||
return resp, err
|
return resp, err
|
||||||
} else {
|
} else {
|
||||||
if val == 0 {
|
if val == 0 {
|
||||||
time.Sleep(8 * time.Second) // extra delay
|
time.Sleep(time.Duration(r.config.GetRateLimitSleepSeconds()) * time.Second) // extra delay
|
||||||
} else {
|
} else {
|
||||||
attempt += val
|
attempt += val
|
||||||
if attempt > r.MaxRetries {
|
if attempt > r.MaxRetries {
|
||||||
|
|||||||
Reference in New Issue
Block a user