feat: scheduler merge end of piece and piece from seed peer (#1474)

Signed-off-by: Gaius <gaius.qi@gmail.com>
This commit is contained in:
Gaius 2022-07-21 19:51:25 +08:00
parent 1936acfd07
commit f9d2736ae8
No known key found for this signature in database
GPG Key ID: 8B4E5D1290FA2FFB
2 changed files with 8 additions and 7 deletions

View File

@ -249,7 +249,7 @@ func (s *seedSynchronizer) sendRemindingPieceSeeds(desired int32, reuse bool) er
ps := s.compositePieceSeed(pp, p)
if p.PieceNum == pp.TotalPiece-1 {
ps.Done, ps.EndTime = true, uint64(time.Now().UnixNano())
s.Infof("seed tasks start time: %d, end time: %d, cost: %dms", ps.BeginTime, ps.EndTime, (ps.EndTime-ps.BeginTime)/1000000)
s.Infof("seed tasks start time: %d, end time: %d, cost: %dms, piece number: %d", ps.BeginTime, ps.EndTime, (ps.EndTime-ps.BeginTime)/1000000, p.PieceNum)
}
err = s.seedsServer.Send(&ps)

View File

@ -118,20 +118,21 @@ func (s *seedPeer) TriggerTask(ctx context.Context, task *Task) (*Peer, *rpcsche
continue
}
// Handle piece download successfully.
peer.Log.Infof("receive piece from seed peer: %#v %#v", piece, piece.PieceInfo)
peer.Pieces.Set(uint(piece.PieceInfo.PieceNum))
peer.AppendPieceCost(pkgtime.SubNano(int64(piece.EndTime), int64(piece.BeginTime)).Milliseconds())
task.StorePiece(piece.PieceInfo)
// Handle end of piece.
if piece.Done {
peer.Log.Infof("receive end of from seed peer: %#v %#v", piece, piece.PieceInfo)
peer.Log.Infof("receive done piece")
return peer, &rpcscheduler.PeerResult{
TotalPieceCount: piece.TotalPieceCount,
ContentLength: piece.ContentLength,
}, nil
}
// Handle piece download successfully.
peer.Log.Infof("receive piece from seed peer: %#v %#v", piece, piece.PieceInfo)
peer.Pieces.Set(uint(piece.PieceInfo.PieceNum))
peer.AppendPieceCost(pkgtime.SubNano(int64(piece.EndTime), int64(piece.BeginTime)).Milliseconds())
task.StorePiece(piece.PieceInfo)
}
}