3dced6fdf0
Just to be safe, won't allow concurrent goroutines to modify the map. The exponential cooldown prevents newer torrents with no seeds blocking older ones with seeds, when there are enough failures that a cooldown event would fill the queue with only failed torrents.
26 lignes
803 o
Go
26 lignes
803 o
Go
package config
|
|
|
|
type MetainfoFetcherConfig struct {
|
|
QueueSize int `json:"queue_size"`
|
|
Timeout int `json:"timeout"`
|
|
MaxDays int `json:"max_days"`
|
|
BaseFailCooldown int `json:"base_fail_cooldown"`
|
|
MaxFailCooldown int `json:"max_fail_cooldown"`
|
|
WakeUpInterval int `json:"wake_up_interval"`
|
|
|
|
UploadRateLimiter int `json:"upload_rate_limiter"`
|
|
DownloadRateLimiter int `json:"download_rate_limiter"`
|
|
}
|
|
|
|
var DefaultMetainfoFetcherConfig = MetainfoFetcherConfig{
|
|
QueueSize: 10,
|
|
Timeout: 120, // 2 min
|
|
MaxDays: 90,
|
|
BaseFailCooldown: 30 * 60, // in seconds, when failed torrents will be able to be fetched again.
|
|
MaxFailCooldown: 48 * 60 * 60,
|
|
WakeUpInterval: 300, // 5 min
|
|
|
|
UploadRateLimiter: 1024, // kbps
|
|
DownloadRateLimiter: 1024,
|
|
}
|
|
|