Always prefer publishing to connected peers
This commit is contained in:
parent
11e09adda7
commit
1cf0e0eb21
1 changed files with 10 additions and 7 deletions
|
@ -367,20 +367,23 @@ class Site(object):
|
||||||
else:
|
else:
|
||||||
limit = 5
|
limit = 5
|
||||||
|
|
||||||
connected_peers = self.getConnectedPeers()
|
peers = self.getConnectedPeers()
|
||||||
if len(connected_peers) > limit * 2: # Publish to already connected peers if possible
|
num_connected_peers = len(peers)
|
||||||
peers = connected_peers
|
|
||||||
else:
|
random.shuffle(peers)
|
||||||
peers = self.peers.values()
|
|
||||||
|
# Add more, non-connected peers
|
||||||
|
peers_more = self.peers.values()
|
||||||
|
random.shuffle(peers_more)
|
||||||
|
peers += peers_more[0:limit*2]
|
||||||
|
|
||||||
self.log.info("Publishing %s to %s/%s peers (connected: %s)..." % (
|
self.log.info("Publishing %s to %s/%s peers (connected: %s)..." % (
|
||||||
inner_path, limit, len(self.peers), len(connected_peers)
|
inner_path, limit, len(self.peers), num_connected_peers
|
||||||
))
|
))
|
||||||
|
|
||||||
if not peers:
|
if not peers:
|
||||||
return 0 # No peers found
|
return 0 # No peers found
|
||||||
|
|
||||||
random.shuffle(peers)
|
|
||||||
event_done = gevent.event.AsyncResult()
|
event_done = gevent.event.AsyncResult()
|
||||||
for i in range(min(len(self.peers), limit, threads)):
|
for i in range(min(len(self.peers), limit, threads)):
|
||||||
publisher = gevent.spawn(self.publisher, inner_path, peers, published, limit, event_done)
|
publisher = gevent.spawn(self.publisher, inner_path, peers, published, limit, event_done)
|
||||||
|
|
Loading…
Reference in a new issue