mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-02 10:15:20 +00:00
maintain NUM_SERVERS interfaces
This commit is contained in:
parent
a33bb72dc7
commit
81f24b66c4
1 changed files with 18 additions and 11 deletions
|
@ -24,6 +24,8 @@ DEFAULT_SERVERS = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NUM_SERVERS = 8
|
||||||
|
|
||||||
|
|
||||||
def filter_protocol(servers, p):
|
def filter_protocol(servers, p):
|
||||||
l = []
|
l = []
|
||||||
|
@ -60,7 +62,6 @@ class Network(threading.Thread):
|
||||||
if not os.path.exists(dir_path):
|
if not os.path.exists(dir_path):
|
||||||
os.mkdir(dir_path)
|
os.mkdir(dir_path)
|
||||||
|
|
||||||
|
|
||||||
# default subscriptions
|
# default subscriptions
|
||||||
self.subscriptions = {}
|
self.subscriptions = {}
|
||||||
self.subscriptions[self.on_banner] = [('server.banner',[])]
|
self.subscriptions[self.on_banner] = [('server.banner',[])]
|
||||||
|
@ -137,7 +138,7 @@ class Network(threading.Thread):
|
||||||
self.start_interface(self.default_server)
|
self.start_interface(self.default_server)
|
||||||
self.interface = self.interfaces[self.default_server]
|
self.interface = self.interfaces[self.default_server]
|
||||||
|
|
||||||
for i in range(8):
|
for i in range(NUM_SERVERS):
|
||||||
self.start_random_interface()
|
self.start_random_interface()
|
||||||
|
|
||||||
if not self.interface:
|
if not self.interface:
|
||||||
|
@ -185,7 +186,12 @@ class Network(threading.Thread):
|
||||||
self.running = True
|
self.running = True
|
||||||
|
|
||||||
while self.is_running():
|
while self.is_running():
|
||||||
i = self.queue.get()
|
try:
|
||||||
|
i = self.queue.get(timeout = 30)
|
||||||
|
except Queue.Empty:
|
||||||
|
if len(self.interfaces) < NUM_SERVERS:
|
||||||
|
self.start_random_interface()
|
||||||
|
continue
|
||||||
|
|
||||||
if i.is_connected:
|
if i.is_connected:
|
||||||
i.send([ ('blockchain.headers.subscribe',[])], self.on_header)
|
i.send([ ('blockchain.headers.subscribe',[])], self.on_header)
|
||||||
|
@ -195,14 +201,15 @@ class Network(threading.Thread):
|
||||||
else:
|
else:
|
||||||
self.disconnected_servers.append(i.server)
|
self.disconnected_servers.append(i.server)
|
||||||
self.interfaces.pop(i.server)
|
self.interfaces.pop(i.server)
|
||||||
self.start_random_interface()
|
|
||||||
|
|
||||||
if i == self.interface:
|
if i == self.interface:
|
||||||
if self.config.get('auto_cycle'):
|
self.interface = None
|
||||||
|
self.trigger_callback('disconnected')
|
||||||
|
|
||||||
|
if self.interface is None and self.config.get('auto_cycle') and self.interfaces:
|
||||||
self.interface = random.choice(self.interfaces.values())
|
self.interface = random.choice(self.interfaces.values())
|
||||||
self.config.set_key('server', self.interface.server, False)
|
self.config.set_key('server', self.interface.server, False)
|
||||||
else:
|
self.trigger_callback('connected')
|
||||||
self.trigger_callback('disconnected')
|
|
||||||
|
|
||||||
def on_header(self, i, r):
|
def on_header(self, i, r):
|
||||||
result = r.get('result')
|
result = r.get('result')
|
||||||
|
|
Loading…
Add table
Reference in a new issue