josdejong/workerpool

Add completed method in Pool

Open

#354 创建于 2022年9月8日

在 GitHub 查看
 (5 评论) (0 反应) (0 负责人)JavaScript (164 fork)github user discovery
enhancementhelp wanted

仓库指标

Star
 (2,297 star)
PR 合并指标
 (PR 指标待抓取)

描述

Instead of doing every time this:

const pool = workerpool.pool(
    path.resolve(__dirname, 'worker')
)
const tasks: workerpool.Promise<any, Error>[] = []

for (const entity of entities) {
 const task = pool.exec('worker', [entity])
 tasks.push(task)
}

await Promise.all(tasks)
await pool.terminate()

We can do:

const pool = workerpool.pool(
    path.resolve(__dirname, 'worker')
)

for (const entity of entities) {
 pool.exec('worker', [entity])
}

/* Wait all tasks to complete */ 
await pool.completed()
await pool.terminate()

It would be very handy, if this method is added in the future For example, threads.js already have this feature

贡献者指南