Pick up task that is taken by idle peer

This commit is contained in:
shortcutme 2018-09-17 15:30:48 +02:00
parent d124e2ed15
commit e4af2d5e86
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE

View file

@ -60,6 +60,18 @@ class Worker(object):
))
break
if sleep_i % 10 == 0:
workers = self.manager.findWorkers(task)
if not workers or not workers[0].peer.connection:
break
worker_idle = time.time() - workers[0].peer.connection.last_recv_time
if worker_idle > 1:
if config.verbose:
self.manager.log.debug("%s: %s, worker %s seems idle, picked up task after %ss sleep. (done: %s)" % (
self.key, task["inner_path"], workers[0].key, 0.1 * sleep_i, task["done"]
))
break
if task["done"]:
continue