From 2efb6cf4f18d847d0e33a58f89457b4b6ea7b9fa Mon Sep 17 00:00:00 2001 From: shortcutme Date: Thu, 2 Mar 2017 23:39:52 +0100 Subject: [PATCH] Connect first to best peers based on ping time --- src/Worker/WorkerManager.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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