@webda/async 4.0.0-beta.2 → 4.0.0-beta.4
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.
- package/README.md +89 -4
- package/lib/{models.d.ts → asyncaction.model.d.ts} +75 -37
- package/lib/asyncaction.model.d.ts.map +1 -0
- package/lib/asyncaction.model.js +269 -0
- package/lib/asyncaction.model.js.map +1 -0
- package/lib/index.d.ts +6 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -4
- package/lib/index.js.map +1 -1
- package/lib/services/asyncevents.service.d.ts +154 -0
- package/lib/services/asyncevents.service.d.ts.map +1 -0
- package/lib/services/asyncevents.service.js +219 -0
- package/lib/services/asyncevents.service.js.map +1 -0
- package/lib/services/{asyncjobservice.d.ts → asyncjobservice.service.d.ts} +78 -61
- package/lib/services/asyncjobservice.service.d.ts.map +1 -0
- package/lib/services/asyncjobservice.service.js +584 -0
- package/lib/services/asyncjobservice.service.js.map +1 -0
- package/lib/services/{localrunner.d.ts → localrunner.service.d.ts} +24 -10
- package/lib/services/localrunner.service.d.ts.map +1 -0
- package/lib/services/localrunner.service.js +87 -0
- package/lib/services/localrunner.service.js.map +1 -0
- package/lib/services/{runner.d.ts → runner.service.d.ts} +17 -12
- package/lib/services/runner.service.d.ts.map +1 -0
- package/lib/services/{runner.js → runner.service.js} +16 -13
- package/lib/services/runner.service.js.map +1 -0
- package/lib/services/servicerunner.service.d.ts +105 -0
- package/lib/services/servicerunner.service.d.ts.map +1 -0
- package/lib/services/servicerunner.service.js +131 -0
- package/lib/services/servicerunner.service.js.map +1 -0
- package/package.json +32 -42
- package/webda.module.json +1925 -890
- package/lib/models.d.ts.map +0 -1
- package/lib/models.js +0 -179
- package/lib/models.js.map +0 -1
- package/lib/models.spec.d.ts +0 -7
- package/lib/models.spec.d.ts.map +0 -1
- package/lib/models.spec.js +0 -64
- package/lib/models.spec.js.map +0 -1
- package/lib/services/asyncjobservice.d.ts.map +0 -1
- package/lib/services/asyncjobservice.js +0 -469
- package/lib/services/asyncjobservice.js.map +0 -1
- package/lib/services/asyncjobservice.spec.d.ts +0 -2
- package/lib/services/asyncjobservice.spec.d.ts.map +0 -1
- package/lib/services/asyncjobservice.spec.js +0 -561
- package/lib/services/asyncjobservice.spec.js.map +0 -1
- package/lib/services/localrunner.d.ts.map +0 -1
- package/lib/services/localrunner.js +0 -70
- package/lib/services/localrunner.js.map +0 -1
- package/lib/services/localrunner.spec.d.ts +0 -2
- package/lib/services/localrunner.spec.d.ts.map +0 -1
- package/lib/services/localrunner.spec.js +0 -113
- package/lib/services/localrunner.spec.js.map +0 -1
- package/lib/services/runner.d.ts.map +0 -1
- package/lib/services/runner.js.map +0 -1
- package/lib/services/servicerunner.d.ts +0 -68
- package/lib/services/servicerunner.d.ts.map +0 -1
- package/lib/services/servicerunner.js +0 -97
- package/lib/services/servicerunner.js.map +0 -1
- package/lib/services/servicerunner.spec.d.ts +0 -2
- package/lib/services/servicerunner.spec.d.ts.map +0 -1
- package/lib/services/servicerunner.spec.js +0 -111
- package/lib/services/servicerunner.spec.js.map +0 -1
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { Queue, Service, ServiceParameters } from "@webda/core";
|
|
2
|
+
import type { ModelClass } from "@webda/core";
|
|
3
|
+
/**
|
|
4
|
+
* AsyncEvent representation
|
|
5
|
+
*/
|
|
6
|
+
export declare class AsyncEvent {
|
|
7
|
+
/**
|
|
8
|
+
* Service emitted the event
|
|
9
|
+
*/
|
|
10
|
+
service: string;
|
|
11
|
+
/**
|
|
12
|
+
* Type of event
|
|
13
|
+
*/
|
|
14
|
+
type: string;
|
|
15
|
+
/**
|
|
16
|
+
* Payload of the event
|
|
17
|
+
*/
|
|
18
|
+
payload: any;
|
|
19
|
+
/**
|
|
20
|
+
* Time
|
|
21
|
+
*/
|
|
22
|
+
time: Date;
|
|
23
|
+
/**
|
|
24
|
+
* Used when serializing a service
|
|
25
|
+
*/
|
|
26
|
+
static ServiceTag: string;
|
|
27
|
+
/**
|
|
28
|
+
* @param service - the emitter: a service, a model class or its serialized name
|
|
29
|
+
* @param type - the event type
|
|
30
|
+
* @param payload - the event payload
|
|
31
|
+
*/
|
|
32
|
+
constructor(service: string | Service | ModelClass, type: string, payload?: any);
|
|
33
|
+
/**
|
|
34
|
+
* Allow payload to contain Service but do not serialize them
|
|
35
|
+
* replacing them by a #Webda:Service:${service.getName()} so it
|
|
36
|
+
* can be revived
|
|
37
|
+
*
|
|
38
|
+
* @returns the serializable event
|
|
39
|
+
*/
|
|
40
|
+
toJSON(): this & {
|
|
41
|
+
payload: string;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Deserialize from the queue, reviving any detected service
|
|
45
|
+
*
|
|
46
|
+
* @param data - the serialized event
|
|
47
|
+
* @returns the event
|
|
48
|
+
*/
|
|
49
|
+
static fromQueue(data: any): AsyncEvent;
|
|
50
|
+
/**
|
|
51
|
+
* Mapper name
|
|
52
|
+
* @returns the mapper key
|
|
53
|
+
*/
|
|
54
|
+
getMapper(): string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Queues by name
|
|
58
|
+
*/
|
|
59
|
+
interface QueueMap {
|
|
60
|
+
[key: string]: Queue;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @inheritdoc
|
|
64
|
+
*/
|
|
65
|
+
export declare class EventServiceParameters extends ServiceParameters {
|
|
66
|
+
/**
|
|
67
|
+
* Queues to post async events to
|
|
68
|
+
*/
|
|
69
|
+
queues?: {
|
|
70
|
+
[key: string]: string;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Make the event sending asynchronous
|
|
74
|
+
*/
|
|
75
|
+
sync?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* @override
|
|
78
|
+
* @param params - the input parameters
|
|
79
|
+
* @returns this
|
|
80
|
+
*/
|
|
81
|
+
load(params?: any): this;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* @category CoreServices
|
|
85
|
+
* @WebdaModda AsyncEvents
|
|
86
|
+
*/
|
|
87
|
+
declare class EventService<T extends EventServiceParameters = EventServiceParameters> extends Service<T> {
|
|
88
|
+
_callbacks: any;
|
|
89
|
+
_queues: QueueMap;
|
|
90
|
+
_defaultQueue: string;
|
|
91
|
+
_async: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Resolve the queues
|
|
94
|
+
* @returns this
|
|
95
|
+
*/
|
|
96
|
+
resolve(): this;
|
|
97
|
+
/**
|
|
98
|
+
* Bind a asynchronous event
|
|
99
|
+
*
|
|
100
|
+
* ```mermaid
|
|
101
|
+
* sequenceDiagram
|
|
102
|
+
* participant S as Service
|
|
103
|
+
* participant As as AsyncEventService
|
|
104
|
+
* participant Q as Queue
|
|
105
|
+
* participant Aw as AsyncEventService Worker
|
|
106
|
+
*
|
|
107
|
+
* As->>S: Bind event to a sendQueue listener
|
|
108
|
+
* activate As
|
|
109
|
+
* S->>As: Emit event
|
|
110
|
+
* As->>Q: Push the event to the queue
|
|
111
|
+
* deactivate As
|
|
112
|
+
* Aw->>Q: Consume queue
|
|
113
|
+
* Aw->>Aw: Call the original listener
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* @param service - the service or model class emitting the event
|
|
117
|
+
* @param event - the event name
|
|
118
|
+
* @param callback - the listener
|
|
119
|
+
* @param queue - the queue to use, default queue if not specified
|
|
120
|
+
*/
|
|
121
|
+
bindAsyncListener(service: Service | ModelClass, event: string, callback: any, queue?: string): void;
|
|
122
|
+
/**
|
|
123
|
+
* Synchronous Listener to proxy to async
|
|
124
|
+
*
|
|
125
|
+
* @param service - the emitter
|
|
126
|
+
* @param type - the event type
|
|
127
|
+
* @param queue - the queue to use
|
|
128
|
+
* @param payload - the event payload
|
|
129
|
+
* @returns the send or handle promise
|
|
130
|
+
*/
|
|
131
|
+
pushEvent(service: Service | ModelClass, type: string, queue: string, payload: any): Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* Process one event
|
|
134
|
+
*
|
|
135
|
+
* @param event - the event
|
|
136
|
+
* @returns a promise resolved once all listeners are done
|
|
137
|
+
*/
|
|
138
|
+
protected handleEvent(event: AsyncEvent): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Process a serialized event
|
|
141
|
+
* @param event serialized event
|
|
142
|
+
* @returns the handle promise
|
|
143
|
+
*/
|
|
144
|
+
protected handleRawEvent(event: AsyncEvent): Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* Process asynchronous event on queue
|
|
147
|
+
* @param queue - the queue to consume
|
|
148
|
+
* @returns the consumer promise
|
|
149
|
+
*/
|
|
150
|
+
worker(queue?: string): Promise<void>;
|
|
151
|
+
}
|
|
152
|
+
export { EventService };
|
|
153
|
+
export type { QueueMap };
|
|
154
|
+
//# sourceMappingURL=asyncevents.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncevents.service.d.ts","sourceRoot":"","sources":["../../src/services/asyncevents.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAoC,MAAM,aAAa,CAAC;AAClG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,qBAAa,UAAU;IACrB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX;;OAEG;IACH,MAAM,CAAC,UAAU,SAAqB;IAEtC;;;;OAIG;IACH,YAAY,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,EAWlF;IAED;;;;;;OAMG;IACH,MAAM;;MAYL;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,cAazB;IAED;;;OAGG;IACH,SAAS,WAER;CACF;AAED;;GAEG;AACH,UAAU,QAAQ;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,iBAAiB;IAC3D;;OAEG;IACH,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;;OAIG;IACH,IAAI,CAAC,MAAM,GAAE,GAAQ,GAAG,IAAI,CAK3B;CACF;AAED;;;GAGG;AACH,cAAM,YAAY,CAAC,CAAC,SAAS,sBAAsB,GAAG,sBAAsB,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAC9F,UAAU,EAAE,GAAG,CAAM;IACrB,OAAO,EAAE,QAAQ,CAAM;IACvB,aAAa,EAAE,MAAM,CAAM;IAC3B,MAAM,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,OAAO,IAAI,IAAI,CAiBd;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,KAAA,EAAE,KAAK,CAAC,EAAE,MAAM,QAiBvF;IAED;;;;;;;;OAQG;IACG,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAOvF;IAED;;;;;OAKG;IACH,UAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAY5D;IAED;;;;OAIG;IACH,UAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,iBAE/C;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,GAAE,MAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxD;CACF;AAED,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { Service, ServiceParameters, useDynamicService, useRepository } from "@webda/core";
|
|
2
|
+
/**
|
|
3
|
+
* AsyncEvent representation
|
|
4
|
+
*/
|
|
5
|
+
export class AsyncEvent {
|
|
6
|
+
/**
|
|
7
|
+
* @param service - the emitter: a service, a model class or its serialized name
|
|
8
|
+
* @param type - the event type
|
|
9
|
+
* @param payload - the event payload
|
|
10
|
+
*/
|
|
11
|
+
constructor(service, type, payload = {}) {
|
|
12
|
+
if (service instanceof Service) {
|
|
13
|
+
this.service = `service:${service.getName()}`;
|
|
14
|
+
}
|
|
15
|
+
else if (typeof service === "string") {
|
|
16
|
+
this.service = service;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
this.service = `model:${service.name}`;
|
|
20
|
+
}
|
|
21
|
+
this.type = type;
|
|
22
|
+
this.payload = payload;
|
|
23
|
+
this.time = new Date();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Allow payload to contain Service but do not serialize them
|
|
27
|
+
* replacing them by a #Webda:Service:${service.getName()} so it
|
|
28
|
+
* can be revived
|
|
29
|
+
*
|
|
30
|
+
* @returns the serializable event
|
|
31
|
+
*/
|
|
32
|
+
toJSON() {
|
|
33
|
+
return {
|
|
34
|
+
...this,
|
|
35
|
+
payload: JSON.stringify(this.payload, function serviceReplacer(key, value) {
|
|
36
|
+
// Service.toJSON is applied before the replacer, check the raw value
|
|
37
|
+
const raw = key === "" ? value : this[key];
|
|
38
|
+
if (raw instanceof Service) {
|
|
39
|
+
return `${AsyncEvent.ServiceTag}${raw.getName()}`;
|
|
40
|
+
}
|
|
41
|
+
return value;
|
|
42
|
+
})
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Deserialize from the queue, reviving any detected service
|
|
47
|
+
*
|
|
48
|
+
* @param data - the serialized event
|
|
49
|
+
* @returns the event
|
|
50
|
+
*/
|
|
51
|
+
static fromQueue(data) {
|
|
52
|
+
const evt = new AsyncEvent(data.service, data.type, JSON.parse(data.payload, (_key, value) => {
|
|
53
|
+
if (typeof value === "string" && value.startsWith(AsyncEvent.ServiceTag)) {
|
|
54
|
+
return useDynamicService(value.substring(AsyncEvent.ServiceTag.length));
|
|
55
|
+
}
|
|
56
|
+
return value;
|
|
57
|
+
}));
|
|
58
|
+
evt.time = data.time;
|
|
59
|
+
return evt;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Mapper name
|
|
63
|
+
* @returns the mapper key
|
|
64
|
+
*/
|
|
65
|
+
getMapper() {
|
|
66
|
+
return this.service + "_" + this.type;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Used when serializing a service
|
|
71
|
+
*/
|
|
72
|
+
AsyncEvent.ServiceTag = "#Webda:Service:";
|
|
73
|
+
/**
|
|
74
|
+
* @inheritdoc
|
|
75
|
+
*/
|
|
76
|
+
export class EventServiceParameters extends ServiceParameters {
|
|
77
|
+
/**
|
|
78
|
+
* @override
|
|
79
|
+
* @param params - the input parameters
|
|
80
|
+
* @returns this
|
|
81
|
+
*/
|
|
82
|
+
load(params = {}) {
|
|
83
|
+
super.load(params);
|
|
84
|
+
this.queues ?? (this.queues = {});
|
|
85
|
+
this.sync ?? (this.sync = false);
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* @category CoreServices
|
|
91
|
+
* @WebdaModda AsyncEvents
|
|
92
|
+
*/
|
|
93
|
+
class EventService extends Service {
|
|
94
|
+
constructor() {
|
|
95
|
+
super(...arguments);
|
|
96
|
+
this._callbacks = {};
|
|
97
|
+
this._queues = {};
|
|
98
|
+
this._defaultQueue = "";
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Resolve the queues
|
|
102
|
+
* @returns this
|
|
103
|
+
*/
|
|
104
|
+
resolve() {
|
|
105
|
+
super.resolve();
|
|
106
|
+
Object.keys(this.parameters.queues).forEach(key => {
|
|
107
|
+
// Define default as first queue
|
|
108
|
+
if (!this._defaultQueue) {
|
|
109
|
+
this._defaultQueue = key;
|
|
110
|
+
}
|
|
111
|
+
this._queues[key] = useDynamicService(this.parameters.queues[key]);
|
|
112
|
+
});
|
|
113
|
+
this._async = !this.parameters.sync;
|
|
114
|
+
// Check we have at least one queue to handle asynchronous
|
|
115
|
+
if (this._async && Object.keys(this._queues).length < 1) {
|
|
116
|
+
this.log("ERROR", "Need at least one queue for async to be ready", this.parameters);
|
|
117
|
+
throw Error("Need at least one queue for async to be ready");
|
|
118
|
+
}
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Bind a asynchronous event
|
|
123
|
+
*
|
|
124
|
+
* ```mermaid
|
|
125
|
+
* sequenceDiagram
|
|
126
|
+
* participant S as Service
|
|
127
|
+
* participant As as AsyncEventService
|
|
128
|
+
* participant Q as Queue
|
|
129
|
+
* participant Aw as AsyncEventService Worker
|
|
130
|
+
*
|
|
131
|
+
* As->>S: Bind event to a sendQueue listener
|
|
132
|
+
* activate As
|
|
133
|
+
* S->>As: Emit event
|
|
134
|
+
* As->>Q: Push the event to the queue
|
|
135
|
+
* deactivate As
|
|
136
|
+
* Aw->>Q: Consume queue
|
|
137
|
+
* Aw->>Aw: Call the original listener
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @param service - the service or model class emitting the event
|
|
141
|
+
* @param event - the event name
|
|
142
|
+
* @param callback - the listener
|
|
143
|
+
* @param queue - the queue to use, default queue if not specified
|
|
144
|
+
*/
|
|
145
|
+
bindAsyncListener(service, event, callback, queue) {
|
|
146
|
+
if (!this._async) {
|
|
147
|
+
throw Error("EventService is not configured for asynchronous");
|
|
148
|
+
}
|
|
149
|
+
if (!queue) {
|
|
150
|
+
queue = this._defaultQueue;
|
|
151
|
+
}
|
|
152
|
+
const mapper = new AsyncEvent(service, event).getMapper();
|
|
153
|
+
if (!this._callbacks[mapper]) {
|
|
154
|
+
if (service instanceof Service) {
|
|
155
|
+
service.on(event, data => this.pushEvent(service, event, queue, data));
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
useRepository(service).on(event, data => this.pushEvent(service, event, queue, data));
|
|
159
|
+
}
|
|
160
|
+
this._callbacks[mapper] = [];
|
|
161
|
+
}
|
|
162
|
+
this._callbacks[mapper].push(callback);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Synchronous Listener to proxy to async
|
|
166
|
+
*
|
|
167
|
+
* @param service - the emitter
|
|
168
|
+
* @param type - the event type
|
|
169
|
+
* @param queue - the queue to use
|
|
170
|
+
* @param payload - the event payload
|
|
171
|
+
* @returns the send or handle promise
|
|
172
|
+
*/
|
|
173
|
+
async pushEvent(service, type, queue, payload) {
|
|
174
|
+
const event = new AsyncEvent(service, type, payload);
|
|
175
|
+
if (this._async) {
|
|
176
|
+
return this._queues[queue].sendMessage(event);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
return this.handleEvent(event);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Process one event
|
|
184
|
+
*
|
|
185
|
+
* @param event - the event
|
|
186
|
+
* @returns a promise resolved once all listeners are done
|
|
187
|
+
*/
|
|
188
|
+
async handleEvent(event) {
|
|
189
|
+
if (!this._callbacks[event.getMapper()]) {
|
|
190
|
+
return Promise.reject("Callbacks should not be empty, possible application version mismatch between emitter and worker");
|
|
191
|
+
}
|
|
192
|
+
const promises = [];
|
|
193
|
+
this._callbacks[event.getMapper()].map(executor => {
|
|
194
|
+
promises.push(executor(event.payload, event));
|
|
195
|
+
});
|
|
196
|
+
// Need to handle the failure
|
|
197
|
+
await Promise.all(promises);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Process a serialized event
|
|
201
|
+
* @param event serialized event
|
|
202
|
+
* @returns the handle promise
|
|
203
|
+
*/
|
|
204
|
+
async handleRawEvent(event) {
|
|
205
|
+
return this.handleEvent(AsyncEvent.fromQueue(event));
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Process asynchronous event on queue
|
|
209
|
+
* @param queue - the queue to consume
|
|
210
|
+
* @returns the consumer promise
|
|
211
|
+
*/
|
|
212
|
+
worker(queue = this._defaultQueue) {
|
|
213
|
+
// Avoid loops
|
|
214
|
+
this._async = false;
|
|
215
|
+
return this._queues[queue].consume(this.handleRawEvent.bind(this));
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
export { EventService };
|
|
219
|
+
//# sourceMappingURL=asyncevents.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncevents.service.js","sourceRoot":"","sources":["../../src/services/asyncevents.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CronDefinition, OperationContext, Queue, RequestFilter, Service, ServiceParameters, WebContext } from "@webda/core";
|
|
2
|
+
import type { ModelClass } from "@webda/core";
|
|
2
3
|
import * as WebdaQL from "@webda/ql";
|
|
4
|
+
import { CancelableLoopPromise, CancelablePromise } from "@webda/utils";
|
|
3
5
|
import { WorkerLogLevel } from "@webda/workout";
|
|
4
6
|
import { JSONSchema7 } from "json-schema";
|
|
5
|
-
import { AsyncAction, AsyncActionQueueItem, AsyncOperationAction, AsyncWebdaAction } from "../
|
|
6
|
-
import { Runner } from "./runner.js";
|
|
7
|
+
import { AsyncAction, AsyncActionQueueItem, AsyncOperationAction, AsyncWebdaAction } from "../asyncaction.model.js";
|
|
8
|
+
import { Runner } from "./runner.service.js";
|
|
7
9
|
/**
|
|
8
10
|
* Represent a Job information as you will find in env
|
|
9
11
|
*/
|
|
@@ -98,22 +100,23 @@ export declare class AsyncJobServiceParameters extends ServiceParameters {
|
|
|
98
100
|
* Generated with `webda operations operations.json`
|
|
99
101
|
*/
|
|
100
102
|
asyncOperationDefinition?: string;
|
|
101
|
-
|
|
103
|
+
/**
|
|
104
|
+
* @override
|
|
105
|
+
* @param params - the input parameters
|
|
106
|
+
* @returns this
|
|
107
|
+
*/
|
|
108
|
+
load(params?: any): this;
|
|
102
109
|
}
|
|
103
110
|
/**
|
|
104
111
|
* AsyncService allows you to launch jobs and report status
|
|
105
112
|
*
|
|
106
113
|
* @WebdaModda
|
|
107
114
|
*/
|
|
108
|
-
export default class AsyncJobService<T extends AsyncJobServiceParameters = AsyncJobServiceParameters> extends Service<T> implements RequestFilter {
|
|
115
|
+
export default class AsyncJobService<T extends AsyncJobServiceParameters = AsyncJobServiceParameters> extends Service<T> implements RequestFilter<WebContext> {
|
|
109
116
|
/**
|
|
110
117
|
* Queue for execution
|
|
111
118
|
*/
|
|
112
119
|
protected queue: Queue<AsyncActionQueueItem>;
|
|
113
|
-
/**
|
|
114
|
-
* Store for async actions
|
|
115
|
-
*/
|
|
116
|
-
protected store: Store<AsyncAction>;
|
|
117
120
|
/**
|
|
118
121
|
* Runner to use
|
|
119
122
|
*/
|
|
@@ -125,11 +128,11 @@ export default class AsyncJobService<T extends AsyncJobServiceParameters = Async
|
|
|
125
128
|
/**
|
|
126
129
|
* Model to use when launching action
|
|
127
130
|
*/
|
|
128
|
-
model:
|
|
131
|
+
model: (new (serviceName?: string, method?: string, ...args: any[]) => AsyncWebdaAction) & ModelClass<AsyncWebdaAction>;
|
|
129
132
|
/**
|
|
130
|
-
* Model to use when launching
|
|
133
|
+
* Model to use when launching operation
|
|
131
134
|
*/
|
|
132
|
-
operationModel:
|
|
135
|
+
operationModel: new (operationId: string, context: OperationContext, logLevel?: WorkerLogLevel) => AsyncOperationAction;
|
|
133
136
|
/**
|
|
134
137
|
* Operations definition
|
|
135
138
|
*/
|
|
@@ -158,134 +161,148 @@ export default class AsyncJobService<T extends AsyncJobServiceParameters = Async
|
|
|
158
161
|
};
|
|
159
162
|
/**
|
|
160
163
|
* @inheritdoc
|
|
161
|
-
|
|
162
|
-
loadParameters(params: any): ServiceParameters;
|
|
163
|
-
/**
|
|
164
|
-
* @inheritdoc
|
|
164
|
+
* @returns this
|
|
165
165
|
*/
|
|
166
166
|
resolve(): this;
|
|
167
167
|
/**
|
|
168
168
|
* Register new operations
|
|
169
|
-
* @param operations
|
|
169
|
+
* @param operations - the operations definition
|
|
170
170
|
*/
|
|
171
171
|
registerOperations(operations: typeof this.operations): void;
|
|
172
172
|
/**
|
|
173
173
|
* Allow job status report url
|
|
174
|
+
* @param context - the web context
|
|
175
|
+
* @returns true if the request is a job status report
|
|
174
176
|
*/
|
|
175
177
|
checkRequest(context: WebContext): Promise<boolean>;
|
|
176
178
|
/**
|
|
177
179
|
* Status hook for job report
|
|
178
180
|
*
|
|
179
181
|
* Only updates specific fields: status, errorMessage, statusDetails, results, logs (appending)
|
|
182
|
+
* @param context - the web context
|
|
180
183
|
*/
|
|
181
184
|
protected statusHook(context: WebContext): Promise<void>;
|
|
182
185
|
/**
|
|
183
186
|
* Worker
|
|
184
187
|
*
|
|
185
188
|
* This will launch actions based on defined runners
|
|
189
|
+
* @returns a cancelable promise
|
|
186
190
|
*/
|
|
187
191
|
worker(): CancelablePromise<void>;
|
|
188
192
|
/**
|
|
189
193
|
* Handle one event from the queue and launch the job
|
|
190
|
-
* @param event
|
|
194
|
+
* @param event - the queue item
|
|
195
|
+
* @returns the job promise if any
|
|
191
196
|
*/
|
|
192
197
|
protected handleEvent(event: AsyncActionQueueItem): Promise<void>;
|
|
198
|
+
/**
|
|
199
|
+
* Absolute url of the status hook remote runners POST their reports to
|
|
200
|
+
*
|
|
201
|
+
* It is this service status route: its request filter lets the job headers through
|
|
202
|
+
* and the HMAC is then verified by the action
|
|
203
|
+
* @returns the hook url
|
|
204
|
+
*/
|
|
205
|
+
getHookUrl(): string;
|
|
193
206
|
/**
|
|
194
207
|
* Get the job info
|
|
195
|
-
* @param action
|
|
196
|
-
* @returns
|
|
208
|
+
* @param action - the action
|
|
209
|
+
* @returns the job information
|
|
197
210
|
*/
|
|
198
211
|
getJobInfo(action: AsyncAction): JobInfo;
|
|
199
212
|
/**
|
|
200
213
|
* List available operations through this service
|
|
201
|
-
* @param context
|
|
214
|
+
* @param context - the web context
|
|
202
215
|
*/
|
|
203
216
|
listOperations(context: WebContext<void, {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
version: string;
|
|
207
|
-
};
|
|
208
|
-
operations: {
|
|
209
|
-
[key: string]: {
|
|
210
|
-
id: string;
|
|
211
|
-
input?: string;
|
|
212
|
-
output?: string;
|
|
213
|
-
};
|
|
214
|
-
};
|
|
215
|
-
schemas: {
|
|
216
|
-
[key: string]: JSONSchema7;
|
|
217
|
-
};
|
|
218
|
-
} | string[]>): Promise<void>;
|
|
217
|
+
full?: boolean;
|
|
218
|
+
}>): Promise<void>;
|
|
219
219
|
/**
|
|
220
220
|
* Call an operation for an external system
|
|
221
|
-
* @param context
|
|
222
|
-
* @returns
|
|
221
|
+
* @param context - the operation context
|
|
222
|
+
* @returns the launched action
|
|
223
223
|
*/
|
|
224
|
-
callOperation(context: OperationContext): Promise<
|
|
224
|
+
callOperation(context: OperationContext): Promise<AsyncOperationAction>;
|
|
225
|
+
/**
|
|
226
|
+
* Check the operation exists, is allowed and its input is valid
|
|
227
|
+
* @param context - the operation context
|
|
228
|
+
* @param operationId - the operation id
|
|
229
|
+
*/
|
|
230
|
+
checkOperation(context: OperationContext, operationId: string): Promise<void>;
|
|
225
231
|
/**
|
|
226
232
|
* Launch an operation through this service
|
|
233
|
+
* @param context - the web context
|
|
227
234
|
*/
|
|
228
235
|
launchOperation(context: WebContext): Promise<void>;
|
|
229
236
|
/**
|
|
230
237
|
* Launch the action asynchronously
|
|
231
|
-
* @param action
|
|
232
|
-
* @returns
|
|
238
|
+
* @param action - the action
|
|
239
|
+
* @returns the action
|
|
233
240
|
*/
|
|
234
|
-
launchAction(action:
|
|
241
|
+
launchAction<A extends AsyncAction>(action: A): Promise<A>;
|
|
235
242
|
/**
|
|
236
243
|
* Schedule action for later execution
|
|
237
244
|
*
|
|
238
|
-
* @param action
|
|
239
|
-
* @param timestamp
|
|
245
|
+
* @param action - the action
|
|
246
|
+
* @param timestamp - when to launch it
|
|
247
|
+
* @returns the action
|
|
240
248
|
*/
|
|
241
|
-
scheduleAction(action:
|
|
249
|
+
scheduleAction<A extends AsyncAction>(action: A, timestamp: number): Promise<A>;
|
|
242
250
|
/**
|
|
243
251
|
* Return headers to request status hook
|
|
244
252
|
*
|
|
245
|
-
* @param jobInfo
|
|
246
|
-
* @returns
|
|
253
|
+
* @param jobInfo - the job information
|
|
254
|
+
* @returns the headers
|
|
247
255
|
*/
|
|
248
256
|
getHeaders(jobInfo: JobInfo): {
|
|
249
257
|
[key: string]: string;
|
|
250
258
|
};
|
|
251
259
|
/**
|
|
252
260
|
* Post hook to a remote url or use local store to update status
|
|
253
|
-
* @param jobInfo
|
|
254
|
-
* @param message
|
|
255
|
-
* @returns
|
|
261
|
+
* @param jobInfo - the job information
|
|
262
|
+
* @param message - the status report
|
|
263
|
+
* @returns the updated action
|
|
256
264
|
*/
|
|
257
265
|
postHook(jobInfo: JobInfo, message: any): Promise<AsyncWebdaAction>;
|
|
258
266
|
/**
|
|
259
267
|
* Launch a service.method as an AsyncAction
|
|
260
|
-
* @param serviceName
|
|
261
|
-
* @param method
|
|
262
|
-
* @param args
|
|
268
|
+
* @param serviceName - the service
|
|
269
|
+
* @param method - the method
|
|
270
|
+
* @param args - the arguments
|
|
271
|
+
* @returns the action
|
|
263
272
|
*/
|
|
264
|
-
launchAsAsyncAction(serviceName: string, method: string, ...args: any[]): Promise<
|
|
273
|
+
launchAsAsyncAction(serviceName: string, method: string, ...args: any[]): Promise<AsyncWebdaAction>;
|
|
265
274
|
/**
|
|
266
275
|
* Execute a service.method as an AsyncAction
|
|
267
276
|
*
|
|
268
277
|
* Useful for crontab execution
|
|
269
|
-
* @param serviceName
|
|
270
|
-
* @param method
|
|
271
|
-
* @param args
|
|
278
|
+
* @param serviceName - the service
|
|
279
|
+
* @param method - the method
|
|
280
|
+
* @param args - the arguments
|
|
281
|
+
* @returns the execution promise
|
|
272
282
|
*/
|
|
273
283
|
executeAsAsyncAction(serviceName: string, method: string, ...args: any[]): Promise<void>;
|
|
284
|
+
/**
|
|
285
|
+
* Run the AsyncAction described by the JOB_* environment variables
|
|
286
|
+
* @returns the execution promise
|
|
287
|
+
*/
|
|
288
|
+
runAction(): Promise<void>;
|
|
274
289
|
/**
|
|
275
290
|
* Wrap async job and call the job status hook
|
|
291
|
+
* @param jobInfo - the job information, from environment if not provided
|
|
292
|
+
* @returns a promise resolved once the job is reported
|
|
276
293
|
*/
|
|
277
294
|
runAsyncOperationAction(jobInfo?: JobInfo): Promise<void>;
|
|
278
295
|
/**
|
|
279
296
|
* Get the cron callback function
|
|
280
|
-
* @param cron
|
|
281
|
-
* @returns
|
|
297
|
+
* @param cron - the cron definition
|
|
298
|
+
* @returns the cron callback
|
|
282
299
|
*/
|
|
283
300
|
getCronExecutor(cron: CronDefinition): () => Promise<void>;
|
|
284
301
|
/**
|
|
285
302
|
* Manage scheduled actions and crontab actions
|
|
286
|
-
* @returns
|
|
303
|
+
* @returns a cancelable loop promise
|
|
287
304
|
*/
|
|
288
305
|
scheduler(): CancelableLoopPromise;
|
|
289
306
|
}
|
|
290
307
|
export { AsyncJobService };
|
|
291
|
-
//# sourceMappingURL=asyncjobservice.d.ts.map
|
|
308
|
+
//# sourceMappingURL=asyncjobservice.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncjobservice.service.d.ts","sourceRoot":"","sources":["../../src/services/asyncjobservice.service.ts"],"names":[],"mappings":"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"}
|