From 59d45f445ae4974407157da46109de7d1155307d Mon Sep 17 00:00:00 2001 From: shortcutme Date: Tue, 3 Oct 2017 16:01:02 +0200 Subject: [PATCH] Always start findOptional if no worker running but there is tasks --- src/Worker/WorkerManager.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Worker/WorkerManager.py b/src/Worker/WorkerManager.py index 987ad410..2939b256 100644 --- a/src/Worker/WorkerManager.py +++ b/src/Worker/WorkerManager.py @@ -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: - self.startFindOptional(find_more=True) - else: - self.startFindOptional() + 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