1 | import { channelManager } from './ChannelManager';
|
2 | import { Task, TaskParams } from "./Task";
|
3 | import { promiseNodeify } from './promise-nodeify';
|
4 | import EventEmitter = require('events')
|
5 |
|
6 | export 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 |