set short timeouts in GetTorrent, NewTorrent and Preload log

This commit is contained in:
nikk gitanes
2024-06-07 17:19:34 +03:00
parent 47a2982bfd
commit b6328d6153
3 changed files with 16 additions and 3 deletions

View File

@@ -87,9 +87,13 @@ func SaveTorrentToDB(torr *Torrent) {
func GetTorrent(hashHex string) *Torrent {
hash := metainfo.NewHashFromHex(hashHex)
timeout := time.Second * time.Duration(sets.BTsets.TorrentDisconnectTimeout)
if timeout > time.Minute {
timeout = time.Minute
}
tor := bts.GetTorrent(hash)
if tor != nil {
tor.AddExpiredTime(time.Minute)
tor.AddExpiredTime(timeout)
return tor
}

View File

@@ -59,12 +59,16 @@ func (t *Torrent) Preload(index int, size int64) {
}
if t.Info() != nil {
timeout := time.Second * time.Duration(settings.BTsets.TorrentDisconnectTimeout)
if timeout > time.Minute {
timeout = time.Minute
}
// Запуск лога в отдельном потоке
go func() {
for t.Stat == state.TorrentPreload {
stat := fmt.Sprint(file.Torrent().InfoHash().HexString(), " ", utils2.Format(float64(t.PreloadedBytes)), "/", utils2.Format(float64(t.PreloadSize)), " Speed:", utils2.Format(t.DownloadSpeed), " Peers:", t.Torrent.Stats().ActivePeers, "/", t.Torrent.Stats().TotalPeers, " [Seeds:", t.Torrent.Stats().ConnectedSeeders, "]")
log.TLogln("Preload:", stat)
t.AddExpiredTime(time.Second * time.Duration(settings.BTsets.TorrentDisconnectTimeout))
t.AddExpiredTime(timeout)
time.Sleep(time.Second)
}
}()

View File

@@ -85,6 +85,11 @@ func NewTorrent(spec *torrent.TorrentSpec, bt *BTServer) (*Torrent, error) {
return tor, nil
}
timeout := time.Second * time.Duration(settings.BTsets.TorrentDisconnectTimeout)
if timeout > time.Minute {
timeout = time.Minute
}
torr := new(Torrent)
torr.Torrent = goTorrent
torr.Stat = state.TorrentAdded
@@ -92,7 +97,7 @@ func NewTorrent(spec *torrent.TorrentSpec, bt *BTServer) (*Torrent, error) {
torr.bt = bt
torr.closed = goTorrent.Closed()
torr.TorrentSpec = spec
torr.AddExpiredTime(time.Second * time.Duration(settings.BTsets.TorrentDisconnectTimeout))
torr.AddExpiredTime(timeout)
torr.Timestamp = time.Now().Unix()
go torr.watch()