Skip to content

Commit

Permalink
fix-bug: mbapy/web_utils/task.py: TaskPool: _run_process_loop: sleep …
Browse files Browse the repository at this point in the history
…sleep_while_empty for empty queue handling to avoid busy waiting

- Introduce sleep_while_empty parameter to handle empty queue scenario
- Add sleep logic when thread result queue is empty to prevent busy waiting
  • Loading branch information
BHM-Bob committed Feb 7, 2025
1 parent 9771af8 commit ec01154
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions mbapy/web_utils/task.py
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,7 @@ def __init__(self, mode: str = 'async', n_worker: int = None,
self.MODE = mode
self.N_WORKER = n_worker
self.IS_STARTED = False
self.sleep_while_empty = sleep_while_empty
self._async_loop: asyncio.AbstractEventLoop = None
self._thread_task_queue: Queue = Queue()
self._thread_result_queue: Queue = Queue()
Expand Down Expand Up @@ -317,6 +318,8 @@ def _run_process_loop(self):
except Exception as e:
self._thread_result_queue.put((task_name, e, TaskStatus.NOT_SUCCEEDED))
del tasks_cache[task_name]
time.sleep(self.sleep_while_empty)
time.sleep(self.sleep_while_empty)
pool.close()

def _run_isolated_process_loop(self):
Expand Down

0 comments on commit ec01154

Please sign in to comment.