wtd-core
v4.0.1
Published
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/kaisalmen/wtd/blob/main/LICENSE) [![wtd](https://github.com/kaisalmen/wtd/actions/workflows/actions.yml/badge.svg)](https://github.com/kaisalmen/wtd/actions/workflow
Downloads
1,318
Readme
Worker Task Director Library (wtd-core)
Build applications with workers with less boiler plate code.
Examples
There are multiple examples available demonstarting the features described above (listed from simpler to more advanced):
- ComChannelEndpoint: Hello World: html, ts, worker
- WorkerTask: Hello World: html, ts, worker
- WorkerTaskDirector: Hello World: html, ts, worker
- WorkerTask: Inter-Worker Communication: html, ts, Worker: 1 and 2
Try out all examples here: https://kaisalmen.github.io/wtd
Usage
This shall give you an idea how you can use module worker with WorkerTask
(derived from WorkerTask: Hello World):
// let WorkerTask create the worker
const workerTask = new WorkerTask({
endpointName,
endpointId: 1,
endpointConfig: {
$type: 'WorkerConfigParams',
url: new URL('./HelloWorldWorker.js', import.meta.url),
workerType: 'module',
},
verbose: true
});
try {
// creates and connects the worker callback functions and the WorkerTask
workerTask.connect();
// execute without init and an empty message
const resultExec = await workerTask.executeWorker({
message: WorkerTaskMessage.createEmpty()
});
// once you awaited the resulting WorkerTaskMessage extract the RawPayload
const rawPayload = resultExec.payloads?.[0] as RawPayload;
// log the hello from the HelloWorldWorker
console.log(`Worker said: ${rawPayload.message.raw?.hello}`);
} catch (e) {
// error handling
console.error(e);
}
Further information is found in the main README of the overall repository.
All changes are noted in the overall CHANGELOG.