@google-cloud/pubsub 5.0.0 → 5.2.0
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 +1 -0
- package/build/protos/google/pubsub/v1/pubsub.proto +144 -29
- package/build/protos/google/pubsub/v1/schema.proto +2 -3
- package/build/protos/protos.d.ts +1007 -27
- package/build/protos/protos.js +3093 -172
- package/build/protos/protos.json +357 -32
- package/build/src/exponential-retry.js +3 -3
- package/build/src/exponential-retry.js.map +1 -1
- package/build/src/index.d.ts +1 -1
- package/build/src/index.js +2 -1
- package/build/src/index.js.map +1 -1
- package/build/src/lease-manager.d.ts +18 -0
- package/build/src/lease-manager.js +52 -2
- package/build/src/lease-manager.js.map +1 -1
- package/build/src/logs.d.ts +9 -0
- package/build/src/logs.js +26 -0
- package/build/src/logs.js.map +1 -0
- package/build/src/message-queues.d.ts +25 -1
- package/build/src/message-queues.js +41 -5
- package/build/src/message-queues.js.map +1 -1
- package/build/src/message-stream.d.ts +8 -0
- package/build/src/message-stream.js +37 -14
- package/build/src/message-stream.js.map +1 -1
- package/build/src/publisher/message-batch.d.ts +26 -1
- package/build/src/publisher/message-batch.js +41 -6
- package/build/src/publisher/message-batch.js.map +1 -1
- package/build/src/publisher/message-queues.d.ts +22 -5
- package/build/src/publisher/message-queues.js +51 -18
- package/build/src/publisher/message-queues.js.map +1 -1
- package/build/src/pubsub.d.ts +25 -6
- package/build/src/pubsub.js.map +1 -1
- package/build/src/subscriber.d.ts +70 -4
- package/build/src/subscriber.js +154 -9
- package/build/src/subscriber.js.map +1 -1
- package/build/src/subscription.d.ts +11 -13
- package/build/src/subscription.js +2 -1
- package/build/src/subscription.js.map +1 -1
- package/build/src/telemetry-tracing.js +19 -12
- package/build/src/telemetry-tracing.js.map +1 -1
- package/build/src/temporal.d.ts +66 -4
- package/build/src/temporal.js +104 -4
- package/build/src/temporal.js.map +1 -1
- package/build/src/util.d.ts +22 -0
- package/build/src/util.js +36 -0
- package/build/src/util.js.map +1 -1
- package/build/src/v1/publisher_client.d.ts +0 -18
- package/build/src/v1/publisher_client.js +16 -8
- package/build/src/v1/publisher_client.js.map +1 -1
- package/build/src/v1/schema_service_client.d.ts +0 -20
- package/build/src/v1/schema_service_client.js +5 -5
- package/build/src/v1/schema_service_client.js.map +1 -1
- package/build/src/v1/subscriber_client.d.ts +4 -36
- package/build/src/v1/subscriber_client.js +6 -8
- package/build/src/v1/subscriber_client.js.map +1 -1
- package/package.json +5 -5
- package/CHANGELOG.md +0 -1620
package/build/src/pubsub.d.ts
CHANGED
|
@@ -188,15 +188,34 @@ export declare class PubSub {
|
|
|
188
188
|
*/
|
|
189
189
|
get isIdResolved(): boolean;
|
|
190
190
|
/**
|
|
191
|
-
* Closes
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
*
|
|
191
|
+
* Closes the PubSub client, releasing any underlying gRPC connections.
|
|
192
|
+
*
|
|
193
|
+
* Note that once you close a PubSub object, it may not be used again. Any pending
|
|
194
|
+
* operations (e.g. queued publish messages) will fail. If you have topic or
|
|
195
|
+
* subscription objects that may have pending operations, you should call close()
|
|
196
|
+
* on those first if you want any pending messages to be delivered correctly. The
|
|
196
197
|
* PubSub class doesn't track those.
|
|
198
|
+
|
|
199
|
+
* Note that this method primarily closes the gRPC clients (Publisher and Subscriber)
|
|
200
|
+
* used for API requests. It does **not** automatically handle the graceful shutdown
|
|
201
|
+
* of active subscriptions.
|
|
202
|
+
*
|
|
203
|
+
* For graceful shutdown of subscriptions with specific timeout behavior (e.g.,
|
|
204
|
+
* ensuring buffered messages are nacked before closing), please refer to the
|
|
205
|
+
* {@link Subscription#close} method. It is recommended to call
|
|
206
|
+
* `Subscription.close({timeout: ...})` directly on your active `Subscription`
|
|
207
|
+
* objects *before* calling `PubSub.close()` if you require that specific
|
|
208
|
+
* shutdown behavior.
|
|
209
|
+
*
|
|
210
|
+
* Calling `PubSub.close()` without first closing active subscriptions might
|
|
211
|
+
* result in abrupt termination of message processing for those subscriptions.
|
|
212
|
+
* Any pending operations on associated Topic or Subscription objects (e.g.,
|
|
213
|
+
* queued publish messages or unacked subscriber messages) may fail after
|
|
214
|
+
* `PubSub.close()` is called.
|
|
197
215
|
*
|
|
198
216
|
* @callback EmptyCallback
|
|
199
|
-
* @
|
|
217
|
+
* @param {Error} [err] Request error, if any.
|
|
218
|
+
* @returns {Promise<void>} Resolves when the clients are closed.
|
|
200
219
|
*/
|
|
201
220
|
close(): Promise<void>;
|
|
202
221
|
close(callback: EmptyCallback): void;
|
package/build/src/pubsub.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../src/pubsub.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,uDAAkD;AAClD,yDAA+D;AAC/D,iCAAiC;AACjC,6DAA+C;AAC/C,kCAAkC;AAElC,8DAA8D;AAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAC1C,8DAA8D;AAC9D,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE3B,iCAAqC;AACrC,qCAOkB;AAClB,yCAAoC;AACpC,iDASwB;AACxB,mCAOiB;AAMjB,+CAA+C;AAE/C;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,eAAe,CAAC;AA+I/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAa,MAAM;IACjB,OAAO,CAAe;IACtB,UAAU,CAAU;IACpB,GAAG,CAAkC;IACrC,IAAI,CAAa;IACjB,SAAS,CAAS;IAClB,IAAI,CAAU;IACd,yCAAyC;IACzC,OAAO,CAAsB;IAC7B,sBAAsB,GAAG,qBAAS,CAAC,SAAS,CAC1C,kBAAkB,CACiB,CAAC;IACtC,kBAAkB,GAAG,qBAAS,CAAC,SAAS,CACtC,cAAc,CACiB,CAAC;IAClC,eAAe,GAAG,qBAAS,CAAC,SAAS,CACnC,WAAW,CACiB,CAAC;IAC/B,MAAM,GAAG,IAAI,CAAC;IAEN,YAAY,CAAuB;IAE3C,YAAY,OAAsB;QAChC,yFAAyF;QACzF,+DAA+D;QAC/D,EAAE;QACF,uFAAuF;QACvF,MAAM,YAAY,GAAG;YACnB,wBAAwB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ;YACnD,wBAAwB,EAAE,MAAM,EAAE,YAAY;YAC9C,2BAA2B,EAAE,KAAK,EAAE,aAAa;SAClD,CAAC;QACF,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAErD,oCAAoC;QACpC,iDAAiD;QACjD,MAAM,aAAa,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,SAAS,GAA6B,EAAE,CAAC;QAC/C,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAC1B;YACE,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,GAAG,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SAC/B,EACD,OAAO,CACR,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC;YAC5C,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAED;;;WAGG;QACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,gCAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,sBAAsB,CAAC;QAClE,IAAI,IAAI,CAAC,SAAS,KAAK,sBAAsB,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IAkCD,KAAK,CAAC,QAAwB;QAC5B,MAAM,eAAe,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,gBAAgB,EAAE;iBACpB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;iBACtC,IAAI,CAAC,GAAG,EAAE;gBACT,eAAe,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC;iBACD,KAAK,CAAC,eAAe,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,IAAgB,EAChB,UAAkB,EAClB,OAAqB;QAErB,mCAAmC;QACnC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,MAAM,UAAU,GAAG,eAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,OAAO,GAAyB;YACpC,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,QAAQ;YACR,MAAM,EAAE;gBACN,IAAI,EAAE,UAAU;gBAChB,IAAI;gBACJ,UAAU;aACX;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,eAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC;IAsGD,kBAAkB,CAChB,KAAqB,EACrB,IAAY,EACZ,iBAA0E,EAC1E,QAAqC;QAErC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,YAAY,aAAK,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,OAAO,GACT,OAAO,iBAAiB,KAAK,QAAQ;YACnC,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAE,EAAgC,CAAC;QACxC,QAAQ;YACN,OAAO,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEzE,4DAA4D;QAC5D,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,OAAO,OAAO,CAAC,OAAO,CAAC;QACvB,OAAO,OAAO,CAAC,WAAW,CAAC;QAE3B,MAAM,QAAQ,GAAG,2BAAY,CAAC,eAAe,CAC3C,OAA+B,CAChC,CAAC;QAEF,IAAI,uBAAuB,GAAG,WAAW,CAAC,CAAC,CAAC,EAAC,WAAW,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;YACtC,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,IAAI,EAAE,YAAY,CAAC,IAAI;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CACV;YACE,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,oBAAoB;YAC5B,OAAO;YACP,OAAO;SACR,EACD,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACZ,IAAI,GAAG,EAAE,CAAC;gBACR,QAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,YAAY,CAAC,QAAQ,GAAG,IAAK,CAAC;YAE9B,QAAS,CAAC,IAAI,EAAE,YAAY,EAAE,IAAK,CAAC,CAAC;QACvC,CAAC,CACF,CAAC;IACJ,CAAC;IAyDD,WAAW,CACT,IAA4B,EAC5B,cAAkD,EAClD,QAA8B;QAE9B,MAAM,OAAO,GACX,OAAO,IAAI,KAAK,QAAQ;YACtB,CAAC,CAAC;gBACE,IAAI;aACL;YACH,CAAC,CAAC,IAAI,CAAC;QAEX,2EAA2E;QAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAE7C,uDAAuD;QACvD,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAE1B,MAAM,OAAO,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,QAAQ,GAAG,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE5E,IAAI,CAAC,OAAO,CACV;YACE,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,aAAa;YACrB,OAAO;YACP,OAAO;SACR,EACD,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACZ,IAAI,GAAG,EAAE,CAAC;gBACR,QAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,KAAK,CAAC,QAAQ,GAAG,IAAK,CAAC;YAEvB,QAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAK,CAAC,CAAC;QAChC,CAAC,CACF,CAAC;IACJ,CAAC;IA0CD,kBAAkB,CAChB,IAAY,EACZ,cAAyD,EACzD,QAAqC;QAErC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG;YACd,YAAY,EAAE,GAAG,CAAC,IAAI;SACvB,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,QAAQ,GAAG,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE5E,IAAI,CAAC,OAAO,CACV;YACE,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,oBAAoB;YAC5B,OAAO;YACP,OAAO,EAAE,OAAsB;SAChC,EACD,QAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,iBAAiB;QACf,+DAA+D;QAC/D,gEAAgE;QAChE,iDAAiD;QACjD,MAAM,aAAa,GAAG,wCAAwC,CAAC;QAC/D,MAAM,eAAe,GAAG,sBAAsB,CAAC;QAC/C,MAAM,WAAW,GACf,IAAI,CAAC,OAAO,CAAC,WAAW;YACxB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,uDAAuD;QACvD,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,WAAY;aAC9B,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,KAAK,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,wDAAwD;YACxD,IAAI,WAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;YAC1B,CAAC;iBAAM,IAAI,WAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,oEAAoE;QACpE,mEAAmE;QACnE,qCAAqC;QACrC,EAAE;QACF,kEAAkE;QAClE,mEAAmE;QACnE,MAAM,gBAAgB,GACpB,IAAI,CAAC,OAAO,CAAC,WAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACrD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QAC9B,IACE,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,IAAI,EAClC,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;YAClE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,CAAC,WAAW,CAChB,OAAmB,oBAAW,CAAC,KAAK,EACpC,OAAqB;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG;YACZ,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,IAAI;SACL,CAAC;QAEF,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAqDD,YAAY,CACV,cAAmD,EACnD,QAA+B;QAE/B,MAAM,OAAO,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,QAAQ,GAAG,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE5E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B;YACE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;SAC5C,EACD,OAAO,CACR,CAAC;QAEF,OAAO,OAAO,CAAC,OAAO,CAAC;QACvB,OAAO,OAAO,CAAC,YAAY,CAAC;QAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B;YACE,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,EACD,OAAO,CAAC,OAAO,CAChB,CAAC;QAEF,IAAI,CAAC,OAAO,CAIV;YACE,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,eAAe;YACvB,OAAO;YACP,OAAO;SACR,EACD,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,EAAE;YAC7B,IAAI,SAAqB,CAAC;YAE1B,IAAI,YAAY,EAAE,CAAC;gBACjB,SAAS,GAAG,YAAY,CAAC,GAAG,CAC1B,CAAC,QAAoC,EAAE,EAAE;oBACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAK,CAAC,CAAC;oBACvD,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACrC,OAAO,gBAAgB,CAAC;gBAC1B,CAAC,CACF,CAAC;YACJ,CAAC;YAED,QAAS,CAAC,GAAG,EAAE,SAAU,EAAE,GAAG,IAAI,CAAC,CAAC;QACtC,CAAC,CACF,CAAC;IACJ,CAAC;IAqED,gBAAgB,CACd,cAAmE,EACnE,QAAmC;QAEnC,MAAM,OAAO,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,QAAQ,GAAG,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE5E,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC1B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,CAAC,KAAK,YAAY,aAAK,CAAC,EAAE,CAAC;gBAC9B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,KAAK,CAAC,gBAAgB,CAC3B,OAAO,EACP,QAAyC,CAC1C,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,EAAE,EACF,OAAO,CACsC,CAAC;QAChD,OAAO,CAAC,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QAE/C,OAAQ,OAAmC,CAAC,OAAO,CAAC;QACpD,OAAQ,OAAmC,CAAC,YAAY,CAAC;QAEzD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B;YACE,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,EACD,OAAO,CAAC,OAAO,CAChB,CAAC;QAEF,IAAI,CAAC,OAAO,CAIV;YACE,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,mBAAmB;YAC3B,OAAO;YACP,OAAO;SACR,EACD,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YACxB,IAAI,aAA6B,CAAC;YAElC,IAAI,OAAO,EAAE,CAAC;gBACZ,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAmC,EAAE,EAAE;oBAClE,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC;oBAC1D,oBAAoB,CAAC,QAAQ,GAAG,GAAG,CAAC;oBACpC,OAAO,oBAAoB,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACL,CAAC;YAEA,QAAwC,CAAC,GAAG,EAAE,aAAc,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1E,CAAC,CACF,CAAC;IACJ,CAAC;IA+DD,SAAS,CACP,cAAgD,EAChD,QAA4B;QAE5B,MAAM,OAAO,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,QAAQ,GAAG,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE5E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B;YACE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC,SAAS;SACtC,EACD,OAAO,CACR,CAAC;QAEF,OAAO,OAAO,CAAC,OAAO,CAAC;QACvB,OAAO,OAAO,CAAC,YAAY,CAAC;QAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B;YACE,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,EACD,OAAO,CAAC,OAAO,CAChB,CAAC;QAEF,IAAI,CAAC,OAAO,CACV;YACE,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,YAAY;YACpB,OAAO;YACP,OAAO;SACR,EACD,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE;YAC1B,IAAI,MAAe,CAAC;YAEpB,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7C,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;oBAC/B,OAAO,aAAa,CAAC;gBACvB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,QAAS,CAAC,GAAG,EAAE,MAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QACnC,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,sBAAsB,EAAE,CAAC;YACjE,IAAI,SAAS,CAAC;YAEd,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,MAAM,CAAC,CAAC;gBACV,CAAC;gBACD,SAAS,GAAG,EAAE,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,SAAS,GAAG,SAAU,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,SAAU,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,IAAI,CAAC,YAAa,CAAC;IAC5B,CAAC;IAED;;;;;;;OAOG;IACH;;;;;;;;;;OAUG;IACH,UAAU,CAAC,MAAuB,EAAE,QAA2B;QAC7D,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAC/B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,EAChC,QAAQ,CACT,CAAC;IACJ,CAAC;IACD;;;;;;;;;;OAUG;IACH,KAAK,CAAC,eAAe,CAAC,MAAuB;QAC3C,sEAAsE;QACtE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7C,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,6BAA6B;YAC7B,SAAS,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAmB,CAAC;YAC7D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QACtC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IACD;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD;;;;;;;;;;;OAWG;IACH,OAAO,CAAc,MAAqB,EAAE,QAA+B;QACzE,8EAA8E;QAC9E,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,YAAY,GAAG;gBACnB,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,oCAAoC;gBAC7C,QAAQ,EAAE,IAAI;aACf,CAAC;YACF,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YACjC,QAAQ,CAAC,GAA4B,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,GAAG,EAAE,CAAC;gBACR,QAAQ,CAAC,GAA4B,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;YACD,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO,GAAG,IAAA,kCAAqB,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACzD,MAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,QAAgB;QACrB,OAAO,IAAI,eAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,IAAY;QACnB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,mBAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,YAAY,CAAC,IAAY,EAAE,OAA6B;QACtD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,2BAAY,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,IAAY,EAAE,OAAwB;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,aAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,cAAc,CAAC,MAAe,EAAE,OAAqB;QACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,MAAM,CAAC,cAAc,CACzB;YACE,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,MAAM;SACP,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,iDAAiD;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,YAAY,IAAI,EAAE,CAAC;IAC5B,CAAC;CACF;AAhuCD,wBAguCC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH;;;GAGG;AACH,qBAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,IAAA,oBAAa,EAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE;IACtC,OAAO;IACP,oBAAoB;IACpB,aAAa;IACb,oBAAoB;IACpB,cAAc;IACd,kBAAkB;IAClB,WAAW;CACZ,CAAC,CAAC"}
|
|
@@ -24,6 +24,16 @@ import * as tracing from './telemetry-tracing';
|
|
|
24
24
|
import { Duration } from './temporal';
|
|
25
25
|
import { EventEmitter } from 'events';
|
|
26
26
|
export { StatusError } from './message-stream';
|
|
27
|
+
/**
|
|
28
|
+
* Loggers. Exported for unit tests.
|
|
29
|
+
*
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
export declare const logs: {
|
|
33
|
+
slowAck: import("google-logging-utils").AdhocDebugLogFunction;
|
|
34
|
+
ackNack: import("google-logging-utils").AdhocDebugLogFunction;
|
|
35
|
+
debug: import("google-logging-utils").AdhocDebugLogFunction;
|
|
36
|
+
};
|
|
27
37
|
export type PullResponse = google.pubsub.v1.IStreamingPullResponse;
|
|
28
38
|
export type SubscriptionProperties = google.pubsub.v1.StreamingPullResponse.ISubscriptionProperties;
|
|
29
39
|
type ValueOf<T> = T[keyof T];
|
|
@@ -35,6 +45,22 @@ export declare const AckResponses: {
|
|
|
35
45
|
Other: "OTHER";
|
|
36
46
|
};
|
|
37
47
|
export type AckResponse = ValueOf<typeof AckResponses>;
|
|
48
|
+
/**
|
|
49
|
+
* Enum values for behaviors of the Subscriber.close() method.
|
|
50
|
+
*/
|
|
51
|
+
export declare const SubscriberCloseBehaviors: {
|
|
52
|
+
NackImmediately: "NACK";
|
|
53
|
+
WaitForProcessing: "WAIT";
|
|
54
|
+
};
|
|
55
|
+
export type SubscriberCloseBehavior = ValueOf<typeof SubscriberCloseBehaviors>;
|
|
56
|
+
/**
|
|
57
|
+
* Options to modify the behavior of the Subscriber.close() method. If
|
|
58
|
+
* none is passed, the default is SubscriberCloseBehaviors.Wait.
|
|
59
|
+
*/
|
|
60
|
+
export interface SubscriberCloseOptions {
|
|
61
|
+
behavior?: SubscriberCloseBehavior;
|
|
62
|
+
timeout?: Duration;
|
|
63
|
+
}
|
|
38
64
|
/**
|
|
39
65
|
* Thrown when an error is detected in an ack/nack/modack call, when
|
|
40
66
|
* exactly-once delivery is enabled on the subscription. This will
|
|
@@ -110,10 +136,12 @@ export declare class Message implements tracing.MessageWithAttributes {
|
|
|
110
136
|
orderingKey?: string;
|
|
111
137
|
publishTime: PreciseDate;
|
|
112
138
|
received: number;
|
|
139
|
+
private _handledPromise;
|
|
113
140
|
private _handled;
|
|
114
141
|
private _length;
|
|
115
142
|
private _subscriber;
|
|
116
143
|
private _ackFailed?;
|
|
144
|
+
private _dispatched;
|
|
117
145
|
/**
|
|
118
146
|
* @private
|
|
119
147
|
*
|
|
@@ -151,6 +179,26 @@ export declare class Message implements tracing.MessageWithAttributes {
|
|
|
151
179
|
* @type {number}
|
|
152
180
|
*/
|
|
153
181
|
get length(): number;
|
|
182
|
+
/**
|
|
183
|
+
* Resolves when the message has been handled fully; a handled message may
|
|
184
|
+
* not have any further operations performed on it.
|
|
185
|
+
*
|
|
186
|
+
* @private
|
|
187
|
+
*/
|
|
188
|
+
get handledPromise(): Promise<void>;
|
|
189
|
+
/**
|
|
190
|
+
* When this message is dispensed to user callback code, this should be called.
|
|
191
|
+
* The time between the dispatch and the handledPromise resolving is when the
|
|
192
|
+
* message is with the user.
|
|
193
|
+
*
|
|
194
|
+
* @private
|
|
195
|
+
*/
|
|
196
|
+
dispatched(): void;
|
|
197
|
+
/**
|
|
198
|
+
* @private
|
|
199
|
+
* @returns True if this message has been dispatched to user callback code.
|
|
200
|
+
*/
|
|
201
|
+
isDispatched(): boolean;
|
|
154
202
|
/**
|
|
155
203
|
* Sets this message's exactly once delivery acks to permanent failure. This is
|
|
156
204
|
* meant for internal library use only.
|
|
@@ -244,6 +292,18 @@ export declare class Message implements tracing.MessageWithAttributes {
|
|
|
244
292
|
* settings at the Cloud PubSub server and uses the less accurate method
|
|
245
293
|
* of only enforcing flow control at the client side.
|
|
246
294
|
* @property {MessageStreamOptions} [streamingOptions] Streaming options.
|
|
295
|
+
* If no options are passed, it behaves like `SubscriberCloseBehaviors.Wait`.
|
|
296
|
+
* @property {SubscriberCloseOptions} [options] Determines the basic behavior of the
|
|
297
|
+
* close() function.
|
|
298
|
+
* @property {SubscriberCloseBehavior} [options.behavior] The behavior of the close operation.
|
|
299
|
+
* - NackImmediately: Sends nacks for all messages held by the client library, and
|
|
300
|
+
* wait for them to send.
|
|
301
|
+
* - WaitForProcessing: Continues normal ack/nack and leasing processes until close
|
|
302
|
+
* to the timeout, then switches to NackImmediately behavior to close down.
|
|
303
|
+
* Use {@link SubscriberCloseBehaviors} for enum values.
|
|
304
|
+
* @property {Duration} [options.timeout] In the case of Timeout, the maximum duration
|
|
305
|
+
* to wait for pending ack/nack requests to complete before resolving (or rejecting)
|
|
306
|
+
* the promise.
|
|
247
307
|
*/
|
|
248
308
|
export interface SubscriberOptions {
|
|
249
309
|
minAckDeadline?: Duration;
|
|
@@ -253,6 +313,7 @@ export interface SubscriberOptions {
|
|
|
253
313
|
flowControl?: FlowControlOptions;
|
|
254
314
|
useLegacyFlowControl?: boolean;
|
|
255
315
|
streamingOptions?: MessageStreamOptions;
|
|
316
|
+
closeOptions?: SubscriberCloseOptions;
|
|
256
317
|
}
|
|
257
318
|
/**
|
|
258
319
|
* Subscriber class is used to manage all message related functionality.
|
|
@@ -264,6 +325,7 @@ export interface SubscriberOptions {
|
|
|
264
325
|
* @param {SubscriberOptions} options The subscriber options.
|
|
265
326
|
*/
|
|
266
327
|
export declare class Subscriber extends EventEmitter {
|
|
328
|
+
#private;
|
|
267
329
|
ackDeadline: number;
|
|
268
330
|
maxMessages: number;
|
|
269
331
|
maxBytes: number;
|
|
@@ -279,6 +341,7 @@ export declare class Subscriber extends EventEmitter {
|
|
|
279
341
|
private _options;
|
|
280
342
|
private _stream;
|
|
281
343
|
private _subscription;
|
|
344
|
+
private _99th;
|
|
282
345
|
subscriptionProperties?: SubscriptionProperties;
|
|
283
346
|
constructor(subscription: Subscription, options?: {});
|
|
284
347
|
/**
|
|
@@ -341,10 +404,13 @@ export declare class Subscriber extends EventEmitter {
|
|
|
341
404
|
*/
|
|
342
405
|
ackWithResponse(message: Message): Promise<AckResponse>;
|
|
343
406
|
/**
|
|
344
|
-
* Closes the subscriber
|
|
345
|
-
*
|
|
407
|
+
* Closes the subscriber, stopping the reception of new messages and shutting
|
|
408
|
+
* down the underlying stream. The behavior of the returned Promise will depend
|
|
409
|
+
* on the closeOptions in the subscriber options.
|
|
410
|
+
*
|
|
411
|
+
* @returns {Promise<void>} A promise that resolves when the subscriber is closed
|
|
412
|
+
* and pending operations are flushed or the timeout is reached.
|
|
346
413
|
*
|
|
347
|
-
* @returns {Promise}
|
|
348
414
|
* @private
|
|
349
415
|
*/
|
|
350
416
|
close(): Promise<void>;
|
|
@@ -443,7 +509,7 @@ export declare class Subscriber extends EventEmitter {
|
|
|
443
509
|
*
|
|
444
510
|
* @private
|
|
445
511
|
*
|
|
446
|
-
* @returns {Promise}
|
|
512
|
+
* @returns {Promise<void>}
|
|
447
513
|
*/
|
|
448
514
|
private _waitForFlush;
|
|
449
515
|
}
|
package/build/src/subscriber.js
CHANGED
|
@@ -15,10 +15,11 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.Subscriber = exports.Message = exports.SubscriberSpans = exports.AckError = exports.AckResponses = exports.StatusError = void 0;
|
|
18
|
+
exports.Subscriber = exports.Message = exports.SubscriberSpans = exports.AckError = exports.SubscriberCloseBehaviors = exports.AckResponses = exports.logs = exports.StatusError = void 0;
|
|
19
19
|
const precise_date_1 = require("@google-cloud/precise-date");
|
|
20
20
|
const projectify_1 = require("@google-cloud/projectify");
|
|
21
21
|
const promisify_1 = require("@google-cloud/promisify");
|
|
22
|
+
const defer = require("p-defer");
|
|
22
23
|
const histogram_1 = require("./histogram");
|
|
23
24
|
const lease_manager_1 = require("./lease-manager");
|
|
24
25
|
const message_queues_1 = require("./message-queues");
|
|
@@ -27,8 +28,20 @@ const default_options_1 = require("./default-options");
|
|
|
27
28
|
const tracing = require("./telemetry-tracing");
|
|
28
29
|
const temporal_1 = require("./temporal");
|
|
29
30
|
const events_1 = require("events");
|
|
31
|
+
const util_1 = require("./util");
|
|
32
|
+
const logs_1 = require("./logs");
|
|
30
33
|
var message_stream_2 = require("./message-stream");
|
|
31
34
|
Object.defineProperty(exports, "StatusError", { enumerable: true, get: function () { return message_stream_2.StatusError; } });
|
|
35
|
+
/**
|
|
36
|
+
* Loggers. Exported for unit tests.
|
|
37
|
+
*
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
exports.logs = {
|
|
41
|
+
slowAck: logs_1.logs.pubsub.sublog('slow-ack'),
|
|
42
|
+
ackNack: logs_1.logs.pubsub.sublog('ack-nack'),
|
|
43
|
+
debug: logs_1.logs.pubsub.sublog('debug'),
|
|
44
|
+
};
|
|
32
45
|
exports.AckResponses = {
|
|
33
46
|
PermissionDenied: 'PERMISSION_DENIED',
|
|
34
47
|
FailedPrecondition: 'FAILED_PRECONDITION',
|
|
@@ -36,6 +49,18 @@ exports.AckResponses = {
|
|
|
36
49
|
Invalid: 'INVALID',
|
|
37
50
|
Other: 'OTHER',
|
|
38
51
|
};
|
|
52
|
+
/**
|
|
53
|
+
* Enum values for behaviors of the Subscriber.close() method.
|
|
54
|
+
*/
|
|
55
|
+
exports.SubscriberCloseBehaviors = {
|
|
56
|
+
NackImmediately: 'NACK',
|
|
57
|
+
WaitForProcessing: 'WAIT',
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Specifies how long before the final close timeout, in WaitForProcessing mode,
|
|
61
|
+
* that we should give up and start shutting down cleanly.
|
|
62
|
+
*/
|
|
63
|
+
const FINAL_NACK_TIMEOUT = temporal_1.Duration.from({ seconds: 1 });
|
|
39
64
|
/**
|
|
40
65
|
* Thrown when an error is detected in an ack/nack/modack call, when
|
|
41
66
|
* exactly-once delivery is enabled on the subscription. This will
|
|
@@ -196,10 +221,12 @@ class Message {
|
|
|
196
221
|
orderingKey;
|
|
197
222
|
publishTime;
|
|
198
223
|
received;
|
|
224
|
+
_handledPromise;
|
|
199
225
|
_handled;
|
|
200
226
|
_length;
|
|
201
227
|
_subscriber;
|
|
202
228
|
_ackFailed;
|
|
229
|
+
_dispatched;
|
|
203
230
|
/**
|
|
204
231
|
* @private
|
|
205
232
|
*
|
|
@@ -322,7 +349,9 @@ class Message {
|
|
|
322
349
|
* @internal
|
|
323
350
|
*/
|
|
324
351
|
this.isExactlyOnceDelivery = sub.isExactlyOnceDelivery;
|
|
352
|
+
this._dispatched = false;
|
|
325
353
|
this._handled = false;
|
|
354
|
+
this._handledPromise = defer();
|
|
326
355
|
this._length = this.data.length;
|
|
327
356
|
this._subscriber = sub;
|
|
328
357
|
}
|
|
@@ -334,6 +363,35 @@ class Message {
|
|
|
334
363
|
get length() {
|
|
335
364
|
return this._length;
|
|
336
365
|
}
|
|
366
|
+
/**
|
|
367
|
+
* Resolves when the message has been handled fully; a handled message may
|
|
368
|
+
* not have any further operations performed on it.
|
|
369
|
+
*
|
|
370
|
+
* @private
|
|
371
|
+
*/
|
|
372
|
+
get handledPromise() {
|
|
373
|
+
return this._handledPromise.promise;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* When this message is dispensed to user callback code, this should be called.
|
|
377
|
+
* The time between the dispatch and the handledPromise resolving is when the
|
|
378
|
+
* message is with the user.
|
|
379
|
+
*
|
|
380
|
+
* @private
|
|
381
|
+
*/
|
|
382
|
+
dispatched() {
|
|
383
|
+
if (!this._dispatched) {
|
|
384
|
+
this.subSpans.processingStart(this._subscriber.name);
|
|
385
|
+
this._dispatched = true;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* @private
|
|
390
|
+
* @returns True if this message has been dispatched to user callback code.
|
|
391
|
+
*/
|
|
392
|
+
isDispatched() {
|
|
393
|
+
return this._dispatched;
|
|
394
|
+
}
|
|
337
395
|
/**
|
|
338
396
|
* Sets this message's exactly once delivery acks to permanent failure. This is
|
|
339
397
|
* meant for internal library use only.
|
|
@@ -359,6 +417,7 @@ class Message {
|
|
|
359
417
|
this.subSpans.ackCall();
|
|
360
418
|
this.subSpans.processingEnd();
|
|
361
419
|
void this._subscriber.ack(this);
|
|
420
|
+
this._handledPromise.resolve();
|
|
362
421
|
}
|
|
363
422
|
}
|
|
364
423
|
/**
|
|
@@ -391,6 +450,9 @@ class Message {
|
|
|
391
450
|
this.ackFailed(e);
|
|
392
451
|
throw e;
|
|
393
452
|
}
|
|
453
|
+
finally {
|
|
454
|
+
this._handledPromise.resolve();
|
|
455
|
+
}
|
|
394
456
|
}
|
|
395
457
|
else {
|
|
396
458
|
return exports.AckResponses.Invalid;
|
|
@@ -455,6 +517,7 @@ class Message {
|
|
|
455
517
|
this.subSpans.nackCall();
|
|
456
518
|
this.subSpans.processingEnd();
|
|
457
519
|
void this._subscriber.nack(this);
|
|
520
|
+
this._handledPromise.resolve();
|
|
458
521
|
}
|
|
459
522
|
}
|
|
460
523
|
/**
|
|
@@ -488,6 +551,9 @@ class Message {
|
|
|
488
551
|
this.ackFailed(e);
|
|
489
552
|
throw e;
|
|
490
553
|
}
|
|
554
|
+
finally {
|
|
555
|
+
this._handledPromise.resolve();
|
|
556
|
+
}
|
|
491
557
|
}
|
|
492
558
|
else {
|
|
493
559
|
return exports.AckResponses.Invalid;
|
|
@@ -521,11 +587,15 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
521
587
|
_options;
|
|
522
588
|
_stream;
|
|
523
589
|
_subscription;
|
|
590
|
+
// We keep this separate from ackDeadline, because ackDeadline could
|
|
591
|
+
// end up being bound by min/max deadline configs.
|
|
592
|
+
_99th;
|
|
524
593
|
subscriptionProperties;
|
|
525
594
|
constructor(subscription, options = {}) {
|
|
526
595
|
super();
|
|
527
596
|
this.ackDeadline =
|
|
528
597
|
default_options_1.defaultOptions.subscription.startingAckDeadline.totalOf('second');
|
|
598
|
+
this._99th = this.ackDeadline;
|
|
529
599
|
this.maxMessages = default_options_1.defaultOptions.subscription.maxOutstandingMessages;
|
|
530
600
|
this.maxBytes = default_options_1.defaultOptions.subscription.maxOutstandingBytes;
|
|
531
601
|
this.maxExtensionTime = default_options_1.defaultOptions.subscription.maxExtensionTime;
|
|
@@ -555,7 +625,7 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
555
625
|
// If we got an ack time reading, update the histogram (and ackDeadline).
|
|
556
626
|
if (ackTimeSeconds) {
|
|
557
627
|
this._histogram.add(ackTimeSeconds);
|
|
558
|
-
ackDeadline = this._histogram.percentile(99);
|
|
628
|
+
this._99th = ackDeadline = this._histogram.percentile(99);
|
|
559
629
|
}
|
|
560
630
|
// Grab our current min/max deadline values, based on whether exactly-once
|
|
561
631
|
// delivery is enabled, and the defaults.
|
|
@@ -650,6 +720,10 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
650
720
|
async ack(message) {
|
|
651
721
|
const ackTimeSeconds = (Date.now() - message.received) / 1000;
|
|
652
722
|
this.updateAckDeadline(ackTimeSeconds);
|
|
723
|
+
exports.logs.ackNack.info('message (ID %s, ackID %s) ack', message.id, message.ackId);
|
|
724
|
+
if (ackTimeSeconds > this._99th) {
|
|
725
|
+
exports.logs.slowAck.info('message (ID %s, ackID %s) ack took longer than the 99th percentile of message processing time (%s s)', message.id, message.ackId, ackTimeSeconds);
|
|
726
|
+
}
|
|
653
727
|
tracing.PubsubEvents.ackStart(message);
|
|
654
728
|
// Ignore this in this version of the method (but hook catch
|
|
655
729
|
// to avoid unhandled exceptions).
|
|
@@ -671,6 +745,10 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
671
745
|
async ackWithResponse(message) {
|
|
672
746
|
const ackTimeSeconds = (Date.now() - message.received) / 1000;
|
|
673
747
|
this.updateAckDeadline(ackTimeSeconds);
|
|
748
|
+
exports.logs.ackNack.info('message (ID %s, ackID %s) ack with response', message.id, message.ackId);
|
|
749
|
+
if (ackTimeSeconds > this._99th) {
|
|
750
|
+
exports.logs.slowAck.info('message (ID %s, ackID %s) ack took longer than the 99th percentile (%s s)', message.id, message.ackId, ackTimeSeconds);
|
|
751
|
+
}
|
|
674
752
|
tracing.PubsubEvents.ackStart(message);
|
|
675
753
|
await this._acks.add(message);
|
|
676
754
|
tracing.PubsubEvents.ackEnd(message);
|
|
@@ -679,21 +757,75 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
679
757
|
// No exception means Success.
|
|
680
758
|
return exports.AckResponses.Success;
|
|
681
759
|
}
|
|
760
|
+
async #awaitTimeoutAndCheck(promise, timeout) {
|
|
761
|
+
const result = await (0, util_1.awaitWithTimeout)(promise, timeout);
|
|
762
|
+
if (result.exception || result.timedOut) {
|
|
763
|
+
// Don't try to deal with errors at this point, just warn-log.
|
|
764
|
+
if (result.timedOut === false) {
|
|
765
|
+
// This wasn't a timeout.
|
|
766
|
+
exports.logs.debug.warn('Error during Subscriber.close(): %j', result.exception);
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
}
|
|
682
770
|
/**
|
|
683
|
-
* Closes the subscriber
|
|
684
|
-
*
|
|
771
|
+
* Closes the subscriber, stopping the reception of new messages and shutting
|
|
772
|
+
* down the underlying stream. The behavior of the returned Promise will depend
|
|
773
|
+
* on the closeOptions in the subscriber options.
|
|
774
|
+
*
|
|
775
|
+
* @returns {Promise<void>} A promise that resolves when the subscriber is closed
|
|
776
|
+
* and pending operations are flushed or the timeout is reached.
|
|
685
777
|
*
|
|
686
|
-
* @returns {Promise}
|
|
687
778
|
* @private
|
|
688
779
|
*/
|
|
689
780
|
async close() {
|
|
690
781
|
if (!this.isOpen) {
|
|
691
782
|
return;
|
|
692
783
|
}
|
|
784
|
+
// Always close the stream right away so we don't receive more messages.
|
|
693
785
|
this.isOpen = false;
|
|
694
786
|
this._stream.destroy();
|
|
787
|
+
const options = this._options.closeOptions;
|
|
788
|
+
// If no behavior is specified, default to Wait.
|
|
789
|
+
const behavior = options?.behavior ?? exports.SubscriberCloseBehaviors.WaitForProcessing;
|
|
790
|
+
// The timeout can't realistically be longer than the longest time we're willing
|
|
791
|
+
// to lease messages.
|
|
792
|
+
let timeout = (0, temporal_1.atMost)(options?.timeout ?? this.maxExtensionTime, this.maxExtensionTime);
|
|
793
|
+
// If the user specified a zero timeout, just bail immediately.
|
|
794
|
+
if (!timeout.milliseconds) {
|
|
795
|
+
this._inventory.clear();
|
|
796
|
+
return;
|
|
797
|
+
}
|
|
798
|
+
// Warn the user if the timeout is too short for NackImmediately.
|
|
799
|
+
if (temporal_1.Duration.compare(timeout, FINAL_NACK_TIMEOUT) < 0) {
|
|
800
|
+
exports.logs.debug.warn('Subscriber.close() timeout is less than the final shutdown time (%i ms). This may result in lost nacks.', timeout.milliseconds);
|
|
801
|
+
}
|
|
802
|
+
// If we're in WaitForProcessing mode, then we first need to derive a NackImmediately
|
|
803
|
+
// timeout point. If everything finishes before then, we also want to go ahead and bail cleanly.
|
|
804
|
+
const shutdownStart = Date.now();
|
|
805
|
+
if (behavior === exports.SubscriberCloseBehaviors.WaitForProcessing &&
|
|
806
|
+
!this._inventory.isEmpty) {
|
|
807
|
+
const waitTimeout = timeout.subtract(FINAL_NACK_TIMEOUT);
|
|
808
|
+
const emptyPromise = new Promise(r => {
|
|
809
|
+
this._inventory.on('empty', r);
|
|
810
|
+
});
|
|
811
|
+
await this.#awaitTimeoutAndCheck(emptyPromise, waitTimeout);
|
|
812
|
+
}
|
|
813
|
+
// Now we head into immediate shutdown mode with what time is left.
|
|
814
|
+
timeout = timeout.subtract({
|
|
815
|
+
milliseconds: Date.now() - shutdownStart,
|
|
816
|
+
});
|
|
817
|
+
if (timeout.milliseconds <= 0) {
|
|
818
|
+
// This probably won't work out, but go through the motions.
|
|
819
|
+
timeout = temporal_1.Duration.from({ milliseconds: 0 });
|
|
820
|
+
}
|
|
821
|
+
// Grab everything left in inventory. This includes messages that have already
|
|
822
|
+
// been dispatched to user callbacks.
|
|
695
823
|
const remaining = this._inventory.clear();
|
|
696
|
-
|
|
824
|
+
remaining.forEach(m => m.nack());
|
|
825
|
+
// Wait for user callbacks to complete.
|
|
826
|
+
const flushCompleted = this._waitForFlush();
|
|
827
|
+
await this.#awaitTimeoutAndCheck(flushCompleted, timeout);
|
|
828
|
+
// Clean up OTel spans for any remaining messages.
|
|
697
829
|
remaining.forEach(m => {
|
|
698
830
|
m.subSpans.shutdown();
|
|
699
831
|
m.endParentSpan();
|
|
@@ -757,6 +889,11 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
757
889
|
* @private
|
|
758
890
|
*/
|
|
759
891
|
async nack(message) {
|
|
892
|
+
exports.logs.ackNack.info('message (ID %s, ackID %s) nack', message.id, message.ackId);
|
|
893
|
+
const nackTimeSeconds = (Date.now() - message.received) / 1000;
|
|
894
|
+
if (nackTimeSeconds > this._99th) {
|
|
895
|
+
exports.logs.slowAck.info('message (ID %s, ackID %s) nack took longer than the 99th percentile (%s s)', message.id, message.ackId, nackTimeSeconds);
|
|
896
|
+
}
|
|
760
897
|
message.subSpans.nackStart();
|
|
761
898
|
await this.modAck(message, 0);
|
|
762
899
|
message.subSpans.nackEnd();
|
|
@@ -773,6 +910,11 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
773
910
|
* @private
|
|
774
911
|
*/
|
|
775
912
|
async nackWithResponse(message) {
|
|
913
|
+
exports.logs.ackNack.info('message (ID %s, ackID %s) nack with response', message.id, message.ackId);
|
|
914
|
+
const nackTimeSeconds = (Date.now() - message.received) / 1000;
|
|
915
|
+
if (nackTimeSeconds > this._99th) {
|
|
916
|
+
exports.logs.slowAck.info('message (ID %s, ackID %s) nack took longer than the 99th percentile (%s s)', message.id, message.ackId, nackTimeSeconds);
|
|
917
|
+
}
|
|
776
918
|
message.subSpans.nackStart();
|
|
777
919
|
const response = await this.modAckWithResponse(message, 0);
|
|
778
920
|
message.subSpans.nackEnd();
|
|
@@ -922,24 +1064,27 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
922
1064
|
*
|
|
923
1065
|
* @private
|
|
924
1066
|
*
|
|
925
|
-
* @returns {Promise}
|
|
1067
|
+
* @returns {Promise<void>}
|
|
926
1068
|
*/
|
|
927
1069
|
async _waitForFlush() {
|
|
928
1070
|
const promises = [];
|
|
1071
|
+
// Flush any batched requests immediately.
|
|
929
1072
|
if (this._acks.numPendingRequests) {
|
|
930
1073
|
promises.push(this._acks.onFlush());
|
|
931
|
-
|
|
1074
|
+
this._acks.flush('message count').catch(() => { });
|
|
932
1075
|
}
|
|
933
1076
|
if (this._modAcks.numPendingRequests) {
|
|
934
1077
|
promises.push(this._modAcks.onFlush());
|
|
935
|
-
|
|
1078
|
+
this._modAcks.flush('message count').catch(() => { });
|
|
936
1079
|
}
|
|
1080
|
+
// Now, prepare the drain promises.
|
|
937
1081
|
if (this._acks.numInFlightRequests) {
|
|
938
1082
|
promises.push(this._acks.onDrain());
|
|
939
1083
|
}
|
|
940
1084
|
if (this._modAcks.numInFlightRequests) {
|
|
941
1085
|
promises.push(this._modAcks.onDrain());
|
|
942
1086
|
}
|
|
1087
|
+
// Wait for the flush promises.
|
|
943
1088
|
await Promise.all(promises);
|
|
944
1089
|
}
|
|
945
1090
|
}
|