Reset timeout loop of worker on each iteration

If there was a next task planned very soon, this should not become the default
timeout for future loop.

issue11913
review415971003
(grafted from 10426538d63f736318c9eb5028cf34d423701422)

--HG--
branch : 6.0
This commit is contained in:
Cédric Krier committed 2022-12-08 13:34:01 +01:00
1 parent 01238f5a3c
commit b3b49f3379
1 file changed
+3 -3
+3 -3
View File
@@ -62,15 +62,15 @@ def work(options):
queues = [Queue(name, mpool) for name in options.database_names]
tasks = TaskList()
timeout = options.timeout
try:
while True:
timeout = options.timeout
while len(tasks.filter()) >= processes:
time.sleep(0.1)
for queue in queues:
task_id, next_ = queue.pull(options.name)
timeout = min(
next_ or options.timeout, timeout, options.timeout)
if next_ is not None:
timeout = min(next_, timeout)
if task_id:
tasks.append(queue.run(task_id))
break