def handle_tasks(tasks, time_limit, memory_limit, n_jobs=1, logger=None):
window = []
while len(tasks) > 0:
while len(window) < n_jobs:
if len(tasks) == 0:
break
job, sema = tasks.pop()
window.append((job, time.time(), sema))
job.start()
if logger:
logger.debug("Process %s start: %s MB is used" % (job.pid, memory_usage()))
while len(window) == n_jobs:
window = _check_window(window, time_limit, memory_limit, logger)
while len(window) > 0:
window = _check_window(window, time_limit, memory_limit, logger)
评论列表
文章目录