UNPKG

1.16 kBPlain TextView Raw
1import { channelManager } from './ChannelManager';
2import { Task, TaskParams } from "./Task";
3import { promiseNodeify } from './promise-nodeify';
4import EventEmitter = require('events')
5
6export class TaskManager extends EventEmitter {
7 service:string;
8
9 constructor() {
10 super()
11 this.service = "unknown";
12 Task.taskManager = this;
13 this.nowProcessingTasks = new Map()
14 }
15
16 onStartProcesTask(data) {
17 this.nowProcessingTasks.set(data, true)
18
19 this.emit('task-start', data)
20 }
21
22 onEndProcessTask(data, err) {
23 this.nowProcessingTasks.delete(data)
24
25 this.emit('task-end', data)
26 }
27
28 createTask(type:string, params:TaskParams): Task {
29 return new Task(type, params);
30 }
31
32 purgeQueue(taskType:string, cb?) {
33 var abstractTask = new Task(taskType);
34 let promise = abstractTask.purgeQueue();
35 return promiseNodeify(promise, cb);
36 }
37
38 processTask(taskType, taskCallback, opts?, cb?) {
39 if(typeof opts === "function") {
40 cb = opts;
41 opts = {};
42 }
43 var abstractTask = new Task(taskType);
44 let promise = abstractTask.processTask(opts, taskCallback);
45 return promiseNodeify(promise, cb);
46 }
47}
\No newline at end of file