0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00

doc: add note about AsyncResource for Worker pooling

When implementing a pool for Worker threads, the correlation between
posting tasks and getting their results may get lost, depending on
the implementation.

The `AsyncResource` API is the primary way to solve that issue,
so link it from the recommendation in the worker docs.

(This was brought up at the collaborator summit in Berlin.)

PR-URL: https://github.com/nodejs/node/pull/28023
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
This commit is contained in:
Anna Henningsen 2019-06-02 16:09:14 +02:00
parent cde3928a10
commit 55de20999b
No known key found for this signature in database
GPG Key ID: 9C63F3A6CD2AD8F9

View File

@ -49,6 +49,10 @@ The above example spawns a Worker thread for each `parse()` call. In actual
practice, use a pool of Workers instead for these kinds of tasks. Otherwise, the
overhead of creating Workers would likely exceed their benefit.
When implementing a worker pool, use the [`AsyncResource`][] API to inform
diagnostic tools (e.g. in order to provide asynchronous stack traces) about the
correlation between tasks and their outcomes.
## worker.isMainThread
<!-- YAML
added: v10.5.0
@ -653,6 +657,7 @@ active handle in the event system. If the worker is already `unref()`ed calling
`unref()` again will have no effect.
[`'close'` event]: #worker_threads_event_close
[`AsyncResource`]: async_hooks.html#async_hooks_class_asyncresource
[`Buffer`]: buffer.html
[`EventEmitter`]: events.html
[`EventTarget`]: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget