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) ps := s.compositePieceSeed(pp, p)
if p.PieceNum == pp.TotalPiece-1 { if p.PieceNum == pp.TotalPiece-1 {
ps.Done, ps.EndTime = true, uint64(time.Now().UnixNano()) 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) err = s.seedsServer.Send(&ps)

View File

@ -118,20 +118,21 @@ func (s *seedPeer) TriggerTask(ctx context.Context, task *Task) (*Peer, *rpcsche
continue 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. // Handle end of piece.
if piece.Done { 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{ return peer, &rpcscheduler.PeerResult{
TotalPieceCount: piece.TotalPieceCount, TotalPieceCount: piece.TotalPieceCount,
ContentLength: piece.ContentLength, ContentLength: piece.ContentLength,
}, nil }, 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)
} }
} }