|
|
@ -130,7 +130,7 @@ class Worker(threading.Thread):
|
|
|
|
:param queue: a Queue
|
|
|
|
:param queue: a Queue
|
|
|
|
:param targets: a mapping of task names and the actual task objects"""
|
|
|
|
:param targets: a mapping of task names and the actual task objects"""
|
|
|
|
|
|
|
|
|
|
|
|
interval = 0.05
|
|
|
|
interval = 0.1
|
|
|
|
|
|
|
|
|
|
|
|
def __init__(self, queue, targets):
|
|
|
|
def __init__(self, queue, targets):
|
|
|
|
super(Worker, self).__init__()
|
|
|
|
super(Worker, self).__init__()
|
|
|
@ -148,7 +148,7 @@ class Worker(threading.Thread):
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
payload = self.queue.get()
|
|
|
|
payload = self.queue.get()
|
|
|
|
except queue.Empty:
|
|
|
|
except queue.Empty:
|
|
|
|
Worker.wait(0.5)
|
|
|
|
self.wait(10)
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
task = self.targets.get(payload.type)
|
|
|
|
task = self.targets.get(payload.type)
|
|
|
|
if task is None:
|
|
|
|
if task is None:
|
|
|
@ -175,17 +175,18 @@ class Worker(threading.Thread):
|
|
|
|
self.alive = False
|
|
|
|
self.alive = False
|
|
|
|
super(Worker, self).join(timeout)
|
|
|
|
super(Worker, self).join(timeout)
|
|
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
def wait(self, seconds):
|
|
|
|
def wait(cls, seconds):
|
|
|
|
|
|
|
|
"""Sleep for :param seconds: but split into :var interval: sleeps to
|
|
|
|
"""Sleep for :param seconds: but split into :var interval: sleeps to
|
|
|
|
be interruptable.
|
|
|
|
be interruptable.
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
f, i = math.modf(seconds / Worker.interval)
|
|
|
|
f, i = math.modf(seconds / Worker.interval)
|
|
|
|
|
|
|
|
|
|
|
|
for x in range(int(i)):
|
|
|
|
for x in range(int(i)):
|
|
|
|
time.sleep(Worker.interval)
|
|
|
|
if self.alive:
|
|
|
|
|
|
|
|
time.sleep(Worker.interval)
|
|
|
|
|
|
|
|
|
|
|
|
time.sleep(f * Worker.interval)
|
|
|
|
if self.alive:
|
|
|
|
|
|
|
|
time.sleep(f * Worker.interval)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from .sa import SAQueue
|
|
|
|
from .sa import SAQueue
|
|
|
|