@betterinternship/core 2.5.19 → 2.5.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -60,12 +60,12 @@ export class BaseTaskRunner {
|
|
|
60
60
|
this.handler = handler;
|
|
61
61
|
}
|
|
62
62
|
async listen(processName) {
|
|
63
|
-
const taskRunner = async (taskId,
|
|
63
|
+
const taskRunner = async (taskId, actions) => {
|
|
64
64
|
const task = await tasks.findFirst({ where: { id: taskId } });
|
|
65
65
|
if (processName && processName !== task?.process_name)
|
|
66
66
|
return;
|
|
67
67
|
if (task?.parent_id && !task?.inputs)
|
|
68
|
-
return;
|
|
68
|
+
return actions.hold();
|
|
69
69
|
const response = await this.handler(task);
|
|
70
70
|
await tasks.update({
|
|
71
71
|
where: { id: taskId },
|
|
@@ -76,9 +76,9 @@ export class BaseTaskRunner {
|
|
|
76
76
|
},
|
|
77
77
|
});
|
|
78
78
|
if (response.error)
|
|
79
|
-
reject();
|
|
79
|
+
actions.reject();
|
|
80
80
|
else
|
|
81
|
-
resolve();
|
|
81
|
+
actions.resolve();
|
|
82
82
|
await brokerAPI.addToQueue(this.responseQueueId, taskId);
|
|
83
83
|
};
|
|
84
84
|
const brokerAPI = await BrokerAPI.instance();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.task.js","sourceRoot":"","sources":["../../../lib/broker/base.task.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"base.task.js","sourceRoot":"","sources":["../../../lib/broker/base.task.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,16 @@ export interface RequestBody {
|
|
|
5
5
|
}
|
|
6
6
|
export type TaskResolver = () => void;
|
|
7
7
|
export type TaskRejecter = () => void;
|
|
8
|
+
export type TaskHolder = () => void;
|
|
9
|
+
export type TaskHandler<T> = (taskId: string, actions: {
|
|
10
|
+
resolve: TaskResolver;
|
|
11
|
+
reject: TaskRejecter;
|
|
12
|
+
hold: TaskHolder;
|
|
13
|
+
}) => Promise<T>;
|
|
8
14
|
export declare class BrokerAPI {
|
|
9
15
|
connection: amqp.ChannelModel;
|
|
10
16
|
channels: Record<string, amqp.Channel>;
|
|
17
|
+
handlers: Record<string, TaskHandler<any>[]>;
|
|
11
18
|
private static __instance;
|
|
12
19
|
private constructor();
|
|
13
20
|
static instance(): Promise<BrokerAPI | null>;
|
|
@@ -17,5 +24,5 @@ export declare class BrokerAPI {
|
|
|
17
24
|
retries?: number;
|
|
18
25
|
maxRetries?: number;
|
|
19
26
|
}): Promise<boolean>;
|
|
20
|
-
registerQueueHandler<T>(queueId: string, handler:
|
|
27
|
+
registerQueueHandler<T>(queueId: string, handler: TaskHandler<T>): Promise<void>;
|
|
21
28
|
}
|
|
@@ -13,6 +13,7 @@ export const Q = (...args) => {
|
|
|
13
13
|
export class BrokerAPI {
|
|
14
14
|
connection;
|
|
15
15
|
channels;
|
|
16
|
+
handlers;
|
|
16
17
|
static __instance = null;
|
|
17
18
|
constructor() { }
|
|
18
19
|
static async instance() {
|
|
@@ -66,10 +67,19 @@ export class BrokerAPI {
|
|
|
66
67
|
}
|
|
67
68
|
async registerQueueHandler(queueId, handler) {
|
|
68
69
|
await this.assertQueue(queueId);
|
|
70
|
+
if (Object.keys(this.handlers).includes(queueId)) {
|
|
71
|
+
this.handlers[queueId].push(handler);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const brokerAPI = this;
|
|
75
|
+
this.handlers[queueId] = [handler];
|
|
69
76
|
const resolve = (message) => () => {
|
|
70
77
|
this.channels.writer.ack(message);
|
|
71
78
|
};
|
|
72
|
-
const
|
|
79
|
+
const hold = (message) => () => {
|
|
80
|
+
this.channels.writer.nack(message, false, true);
|
|
81
|
+
};
|
|
82
|
+
const reject = (queueId, message) => () => {
|
|
73
83
|
const content = message?.content?.toString?.();
|
|
74
84
|
const request = JSON.parse(content);
|
|
75
85
|
const headers = message.properties.headers ?? {};
|
|
@@ -86,9 +96,16 @@ export class BrokerAPI {
|
|
|
86
96
|
}
|
|
87
97
|
};
|
|
88
98
|
await this.channels.reader.consume(queueId, (message) => {
|
|
99
|
+
const handlers = brokerAPI.handlers;
|
|
89
100
|
const content = message?.content?.toString?.();
|
|
90
101
|
const request = JSON.parse(content);
|
|
91
|
-
|
|
102
|
+
for (const handler of handlers[queueId]) {
|
|
103
|
+
void handler(request.taskId, {
|
|
104
|
+
resolve: resolve(message),
|
|
105
|
+
reject: reject(queueId, message),
|
|
106
|
+
hold: hold(message),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
92
109
|
});
|
|
93
110
|
}
|
|
94
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../lib/broker/broker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;AAC9C,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;AACtC,IAAI,CAAC,YAAY,IAAI,gBAAgB;IACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AAMjE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAc,EAAU,EAAE;IAC7C,IAAI,GAAG,CAAC,WAAW,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;QACvD,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../lib/broker/broker.ts"],"names":[],"mappings":"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"}
|