@ms-cloudpack/worker-pool
v0.1.2
Published
General worker pool helper.
Downloads
1,075
Keywords
Readme
@ms-cloudpack/worker-pool
Provides utilities for simplifying worker execution.
Usage
There are two source files when using workers - the worker entry, which hosts the code to be executed within the worker, and the host source, which instantiates the pool and executes the work.
Setting up a worker entry
First, let's set up the worker entry that will execute work inside the worker. Use initializeWorker
to set up your api surface:
workerEntry.ts
:
import { initializeWorker } from '@ms-cloudpack/worker-pool';
import { methodA, methodB } from './methods';
// Load any environmental side effects here.
// Then initialize the worker with the appropriate listeners and api dictionary.
initializeWorker({
beforeEach: () => {...}, // optional
afterEach: () => {...}, // optional
methods: {
methodA,
methodB,
},
});
Setting up the pool
In the host where we want to execute things to asynchronously run in the pool of workers:
import { WorkerPool } from '@ms-cloudpack/worker-pool';
const pool = new WorkerPool({ entry: './workerEntry.js' });
Executing work
Work is executed from the pool created above:
const result = await pool.execute('methodA', [arg1, arg2, etc]);