How to get worker.threadId inside a worker using worker_threads?

243 views Asked by At

I'm using the nodejs with worker_threads module.

I created several workers.

I need to get the id of each worker within the worker itself.

I know that in the cluster module, just call cluster.worker.id from within the worker and it returns the worker's id.

I need to do this with worker_threads, but I don't see a function option to call this from within the worker using when I'm just using threads.

I don't find a function for this in the documentation.

The closest I've come to this is calling worker.threadId , but that only works on the parent thread.

So I have the expense of forwarding the id through the parent until it reaches the child via postMessage to the child.

That's too much dirty code.

I miss a function similar to cluster.worker.id inside a child worker_threads.

Does anyone know a better solution to calling worker.threadId from inside a child worker_threads?

<<< EDIT >>>

The solution has been found!

I found the solution!

You need to add threadId as an import of worker_threads.

import { Worker, isMainThread, parentPort, threadId } from 'worker_threads';

And call threadId inside the child worker.

The worker id will come natively.

I asked this question in the official nodejs directory on github.

A person named benjamingr gave this solution. github

0

There are 0 answers