Always start findOptional if no worker running but there is tasks

This commit is contained in:
shortcutme 2017-10-03 16:01:02 +02:00
parent 09d19da3bc
commit 59d45f445a
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE

View file

@ -389,11 +389,15 @@ class WorkerManager(object):
del(self.workers[worker.key])
self.log.debug("Removed worker, workers: %s/%s" % (len(self.workers), self.getMaxWorkers()))
if len(self.workers) <= self.getMaxWorkers() / 3 and len(self.asked_peers) < 10:
important_task = (task for task in self.tasks if task["priority"] > 0)
if next(important_task, None) or len(self.asked_peers) == 0:
optional_task = next((task for task in self.tasks if task["optional_hash_id"]), None)
if optional_task:
if len(self.workers) == 0:
self.startFindOptional(find_more=True)
else:
self.startFindOptional()
elif self.tasks and not self.workers and worker.task:
self.log.debug("Starting new workers... (tasks: %s)" % len(self.tasks))
self.startWorkers()
# Tasks sorted by this