-import { ThreadWorker } from "poolifier";
+import { ThreadWorker } from 'poolifier'
export interface MyData {
- ok: number;
+ ok: 0 | 1
}
export interface MyResponse {
- message: string;
- data: MyData;
+ message: string
+ data?: MyData
}
-class MyThreadWorker extends ThreadWorker<MyData, Promise<MyResponse>> {
- constructor() {
- super((data) => this.process(data), {
- maxInactiveTime: 60_000,
- async: true,
- });
+class MyThreadWorker extends ThreadWorker<MyData, MyResponse> {
+ constructor () {
+ super(async (data?: MyData) => await this.process(data), {
+ maxInactiveTime: 60000,
+ })
}
- private async process(data: MyData): Promise<MyResponse> {
- return new Promise((resolve) => {
+ private async process (data?: MyData): Promise<MyResponse> {
+ return await new Promise(resolve => {
setTimeout(() => {
- resolve({ message: "Hello from Worker :)", data });
- }, 10_000);
- });
+ resolve({ message: 'Hello from Worker :)', data })
+ }, 1000)
+ })
}
}
-export default new MyThreadWorker();
+export default new MyThreadWorker()