@nextage/era-lib 1.0.211 → 1.0.212
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.
|
@@ -9,6 +9,7 @@ export declare abstract class NatsListener<T extends Event> extends Listener<T>
|
|
|
9
9
|
private readonly provider;
|
|
10
10
|
abstract streamName: string;
|
|
11
11
|
private consumer?;
|
|
12
|
+
private messages?;
|
|
12
13
|
private isListening;
|
|
13
14
|
protected ackWait: number;
|
|
14
15
|
protected maxDeliver: number;
|
|
@@ -59,8 +60,17 @@ export declare abstract class NatsListener<T extends Event> extends Listener<T>
|
|
|
59
60
|
*/
|
|
60
61
|
protected sendToDeadLetter(msg: JsMsg, error: unknown): Promise<boolean>;
|
|
61
62
|
/**
|
|
62
|
-
* Stops the
|
|
63
|
-
*
|
|
63
|
+
* Stops the LOCAL consumption and keeps the durable consumer on the server.
|
|
64
|
+
*
|
|
65
|
+
* The durable is the cursor of the consumer group, not a resource of this process: it keeps
|
|
66
|
+
* the position of the group and its unacknowledged messages. Left in place, the next
|
|
67
|
+
* `listen()` re-attaches to it and the messages published while the service was down are
|
|
68
|
+
* delivered; deleted, the next `listen()` would create a new one, which starts from what
|
|
69
|
+
* arrives after it, and the downtime would be lost. A message in flight and not yet acked is
|
|
70
|
+
* redelivered after `ackWait`, so `onMessage` must stay idempotent.
|
|
71
|
+
*
|
|
72
|
+
* Deleting a durable on purpose is a different act: `NatsClientManager.unsubscribe`.
|
|
73
|
+
* Safe to call twice; a teardown error is never surfaced.
|
|
64
74
|
*/
|
|
65
75
|
stop(): Promise<void>;
|
|
66
76
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-nats-listener.d.ts","sourceRoot":"","sources":["../../../src/events/base/base-nats-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAsB,eAAe,EAAE,MAAM,eAAe,CAAC;AAG3F,OAAO,EAAE,QAAQ,EAAE,MAAwD,iBAAiB,CAAC;AAE7F,OAAO,
|
|
1
|
+
{"version":3,"file":"base-nats-listener.d.ts","sourceRoot":"","sources":["../../../src/events/base/base-nats-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAsB,eAAe,EAAE,MAAM,eAAe,CAAC;AAG3F,OAAO,EAAE,QAAQ,EAAE,MAAwD,iBAAiB,CAAC;AAE7F,OAAO,EAA8B,KAAK,EAAE,MAA+B,MAAM,CAAC;AAElF;;;GAGG;AACH,8BAAsB,YAAY,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IAmBxD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjBtC,QAAQ,CAAC,UAAU,EAAM,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAC1C,OAAO,CAAC,WAAW,CAAsB;IAEzC,SAAS,CAAC,OAAO,EAAQ,MAAM,CAAuB;IACtD,SAAS,CAAC,UAAU,EAAK,MAAM,CAAK;IAMpC,SAAS,CAAC,YAAY,EAAG,MAAM,EAAE,CAAuB;IAExD,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;gBAEhC,QAAQ,EAAE,cAAc;cAKnC,mBAAmB,IAAI,MAAM;cAK7B,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAOzD,OAAO,KAAK,MAAM,GAGjB;IAED;;;;;OAKG;IACH,mBAAmB,IAAI,eAAe;IAKtC;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB7B;;;;OAIG;YACW,eAAe;IA+B7B;;;;;;;;OAQG;cACa,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDxD;;;;OAIG;cACa,oBAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/E;;;;OAIG;cACa,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB9E;;;;;;;;;;;;OAYG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;;;;OAKG;IACH,OAAO,CAAC,MAAM;IAKd;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAYrB"}
|
|
@@ -66,10 +66,17 @@ class NatsListener extends base_listener_1.Listener {
|
|
|
66
66
|
* isolation and so subclasses never have to ack again.
|
|
67
67
|
*/
|
|
68
68
|
async processMessages() {
|
|
69
|
-
|
|
69
|
+
// A retry scheduled before `stop()` must not reopen the consumption.
|
|
70
|
+
if (!this.consumer || !this.isListening)
|
|
70
71
|
return;
|
|
71
72
|
try {
|
|
72
73
|
const messages = await this.consumer.consume();
|
|
74
|
+
// `stop()` may have run while the loop was being opened: close it at once.
|
|
75
|
+
if (!this.isListening) {
|
|
76
|
+
await messages.close();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
this.messages = messages;
|
|
73
80
|
for await (const msg of messages) {
|
|
74
81
|
if (!this.isListening)
|
|
75
82
|
break;
|
|
@@ -169,19 +176,29 @@ class NatsListener extends base_listener_1.Listener {
|
|
|
169
176
|
}
|
|
170
177
|
}
|
|
171
178
|
/**
|
|
172
|
-
* Stops the
|
|
173
|
-
*
|
|
179
|
+
* Stops the LOCAL consumption and keeps the durable consumer on the server.
|
|
180
|
+
*
|
|
181
|
+
* The durable is the cursor of the consumer group, not a resource of this process: it keeps
|
|
182
|
+
* the position of the group and its unacknowledged messages. Left in place, the next
|
|
183
|
+
* `listen()` re-attaches to it and the messages published while the service was down are
|
|
184
|
+
* delivered; deleted, the next `listen()` would create a new one, which starts from what
|
|
185
|
+
* arrives after it, and the downtime would be lost. A message in flight and not yet acked is
|
|
186
|
+
* redelivered after `ackWait`, so `onMessage` must stay idempotent.
|
|
187
|
+
*
|
|
188
|
+
* Deleting a durable on purpose is a different act: `NatsClientManager.unsubscribe`.
|
|
189
|
+
* Safe to call twice; a teardown error is never surfaced.
|
|
174
190
|
*/
|
|
175
191
|
async stop() {
|
|
176
192
|
this.isListening = false;
|
|
177
|
-
|
|
178
|
-
|
|
193
|
+
const messages = this.messages;
|
|
194
|
+
this.messages = undefined;
|
|
195
|
+
this.consumer = undefined;
|
|
179
196
|
try {
|
|
180
|
-
await
|
|
181
|
-
nx_frame_be_1.APP.logger.info(`🛑 Stopped
|
|
197
|
+
await messages?.close();
|
|
198
|
+
nx_frame_be_1.APP.logger.info(`🛑 Stopped consuming '${this.subject}' (durable consumer '${this.queueGroupName}' kept)`);
|
|
182
199
|
}
|
|
183
200
|
catch (error) {
|
|
184
|
-
nx_frame_be_1.APP.logger.info(`🛑 Stopped
|
|
201
|
+
nx_frame_be_1.APP.logger.info(`🛑 Stopped consuming '${this.subject}' (the local loop was already closing)`);
|
|
185
202
|
}
|
|
186
203
|
}
|
|
187
204
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-nats-listener.js","sourceRoot":"","sources":["../../../src/events/base/base-nats-listener.ts"],"names":[],"mappings":";;;AAAA,sDAAkG;AAElG,0DAAoG;AAEpG,mDAA6F;AAC7F,wCAAwF;AAGxF;;;GAGG;AACH,MAAsB,YAA8B,SAAQ,wBAAW;
|
|
1
|
+
{"version":3,"file":"base-nats-listener.js","sourceRoot":"","sources":["../../../src/events/base/base-nats-listener.ts"],"names":[],"mappings":"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"}
|