diff --git a/src/Worker/WorkerManager.py b/src/Worker/WorkerManager.py index 0e6e2d41..c3fe23e2 100644 --- a/src/Worker/WorkerManager.py +++ b/src/Worker/WorkerManager.py @@ -157,7 +157,9 @@ class WorkerManager(object): if type(peers) is set: peers = list(peers) - random.shuffle(peers) + # Sort by ping + peers.sort(key = lambda peer: peer.connection.last_ping_delay if peer.connection and len(peer.connection.waiting_requests) == 0 else 9999) + for peer in peers: # One worker for every peer if peers and peer not in peers: continue # If peers defined and peer not valid