From 9f9c39b366d2f6faae05bd0f18a8a8519f3a5db8 Mon Sep 17 00:00:00 2001 From: Jan Losinski Date: Mon, 7 Jan 2019 14:58:48 +0100 Subject: [PATCH] Give every booking request its own scraper --- punkow/service/worker.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/punkow/service/worker.py b/punkow/service/worker.py index 559b657..414fbd4 100644 --- a/punkow/service/worker.py +++ b/punkow/service/worker.py @@ -18,23 +18,24 @@ class _WorkerRequest(typing.NamedTuple): id: int name: str email: str + target: str class RequestQueue(object): def __init__(self): self._targets = [] - self._requests = {} + self._requests = [] def enqueue(self, req: model.Request): if req.target not in self._requests: - self._requests[req.target] = [] self._targets.append(req.target) - self._requests[req.target].append(_WorkerRequest(req.id, req.data.name, req.data.email)) + self._requests.append( + _WorkerRequest(req.id, req.data.name, req.data.email, req.target)) def iterate(self): - for target in self._targets: - yield target, self._requests[target] + for item in self._requests: + yield item.target, [item] def is_empty(self): return len(self._targets) == 0 @@ -45,7 +46,7 @@ class RequestQueue(object): @property def request_cnt(self): - return sum(len(x) for x in self._requests.values()) + return len(self._requests) def _book(target: str, reqs: typing.List[_WorkerRequest], debug = False) -> typing.List[int]: