989e2f4fe0e9700ec4dfba8c586e611b4ef68531
[poolifier.git] / examples / typescript / worker.ts
1 import { ThreadWorker } from 'poolifier'
2
3 export interface MyData {
4 ok: 0 | 1
5 }
6
7 export interface MyResponse {
8 data?: MyData
9 message: string
10 }
11
12 class MyThreadWorker extends ThreadWorker<MyData, MyResponse> {
13 constructor () {
14 super(async (data?: MyData) => await this.process(data), {
15 maxInactiveTime: 60000,
16 })
17 }
18
19 private async process (data?: MyData): Promise<MyResponse> {
20 return await new Promise(resolve => {
21 setTimeout(() => {
22 resolve({ data, message: 'Hello from Worker :)' })
23 }, 1000)
24 })
25 }
26 }
27
28 export default new MyThreadWorker()