@google-cloud/pubsub 3.0.3 → 3.1.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/CHANGELOG.md +7 -0
- package/build/src/default-options.d.ts +4 -0
- package/build/src/default-options.js +7 -0
- package/build/src/default-options.js.map +1 -1
- package/build/src/index.d.ts +1 -0
- package/build/src/index.js +3 -1
- package/build/src/index.js.map +1 -1
- package/build/src/lease-manager.d.ts +1 -1
- package/build/src/lease-manager.js +1 -1
- package/build/src/subscriber.d.ts +43 -12
- package/build/src/subscriber.js +77 -24
- package/build/src/subscriber.js.map +1 -1
- package/build/src/temporal.d.ts +45 -0
- package/build/src/temporal.js +68 -0
- package/build/src/temporal.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
[1]: https://www.npmjs.com/package/@google-cloud/pubsub?activeTab=versions
|
|
6
6
|
|
|
7
|
+
## [3.1.0](https://github.com/googleapis/nodejs-pubsub/compare/v3.0.3...v3.1.0) (2022-07-15)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* add minExtension setting and plug it into EOS and ackDeadline settings ([#1582](https://github.com/googleapis/nodejs-pubsub/issues/1582)) ([8709979](https://github.com/googleapis/nodejs-pubsub/commit/87099799960b9f299d3fad609c48bd13e03c9097))
|
|
13
|
+
|
|
7
14
|
## [3.0.3](https://github.com/googleapis/nodejs-pubsub/compare/v3.0.2...v3.0.3) (2022-07-08)
|
|
8
15
|
|
|
9
16
|
|
|
@@ -13,12 +13,16 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { Duration } from './temporal';
|
|
16
17
|
export declare const defaultOptions: {
|
|
17
18
|
subscription: {
|
|
18
19
|
maxOutstandingMessages: number;
|
|
19
20
|
maxOutstandingBytes: number;
|
|
21
|
+
minAckDeadline: undefined;
|
|
22
|
+
maxAckDeadline: Duration;
|
|
20
23
|
maxExtensionMinutes: number;
|
|
21
24
|
maxStreams: number;
|
|
25
|
+
ackDeadline: number;
|
|
22
26
|
};
|
|
23
27
|
publish: {
|
|
24
28
|
maxOutstandingMessages: number;
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.defaultOptions = void 0;
|
|
19
|
+
const temporal_1 = require("./temporal");
|
|
19
20
|
// These options will be used library-wide. They're specified here so that
|
|
20
21
|
// they can be changed easily in the future.
|
|
21
22
|
exports.defaultOptions = {
|
|
@@ -26,12 +27,18 @@ exports.defaultOptions = {
|
|
|
26
27
|
// The maximum amount of message data that may be queued for receiving,
|
|
27
28
|
// in bytes, with the default lease manager.
|
|
28
29
|
maxOutstandingBytes: 100 * 1024 * 1024,
|
|
30
|
+
// The minimum length of time a message's lease will be extended by.
|
|
31
|
+
minAckDeadline: undefined,
|
|
32
|
+
// The maximum length of time a message's lease will be extended by.
|
|
33
|
+
maxAckDeadline: temporal_1.Duration.from({ minutes: 10 }),
|
|
29
34
|
// The maximum number of minutes that a message's lease will ever
|
|
30
35
|
// be extended.
|
|
31
36
|
maxExtensionMinutes: 60,
|
|
32
37
|
// The maximum number of subscription streams/threads that will ever
|
|
33
38
|
// be opened.
|
|
34
39
|
maxStreams: 5,
|
|
40
|
+
// The starting number of seconds that ack deadlines will be extended.
|
|
41
|
+
ackDeadline: 10,
|
|
35
42
|
},
|
|
36
43
|
publish: {
|
|
37
44
|
// The maximum number of messages we'll batch up for publish().
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-options.js","sourceRoot":"","sources":["../../src/default-options.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,0EAA0E;AAC1E,4CAA4C;AAC/B,QAAA,cAAc,GAAG;IAC5B,YAAY,EAAE;QACZ,mEAAmE;QACnE,kCAAkC;QAClC,sBAAsB,EAAE,IAAI;QAE5B,uEAAuE;QACvE,4CAA4C;QAC5C,mBAAmB,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;QAEtC,iEAAiE;QACjE,eAAe;QACf,mBAAmB,EAAE,EAAE;QAEvB,oEAAoE;QACpE,aAAa;QACb,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"default-options.js","sourceRoot":"","sources":["../../src/default-options.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,yCAAoC;AAEpC,0EAA0E;AAC1E,4CAA4C;AAC/B,QAAA,cAAc,GAAG;IAC5B,YAAY,EAAE;QACZ,mEAAmE;QACnE,kCAAkC;QAClC,sBAAsB,EAAE,IAAI;QAE5B,uEAAuE;QACvE,4CAA4C;QAC5C,mBAAmB,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;QAEtC,oEAAoE;QACpE,cAAc,EAAE,SAAS;QAEzB,oEAAoE;QACpE,cAAc,EAAE,mBAAQ,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,EAAE,EAAC,CAAC;QAE5C,iEAAiE;QACjE,eAAe;QACf,mBAAmB,EAAE,EAAE;QAEvB,oEAAoE;QACpE,aAAa;QACb,UAAU,EAAE,CAAC;QAEb,sEAAsE;QACtE,WAAW,EAAE,EAAE;KAChB;IAED,OAAO,EAAE;QACP,+DAA+D;QAC/D,sBAAsB,EAAE,GAAG;QAE3B,mEAAmE;QACnE,mBAAmB,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;QAEpC,yEAAyE;QACzE,cAAc,EAAE,EAAE;KACnB;CACF,CAAC"}
|
package/build/src/index.d.ts
CHANGED
|
@@ -94,5 +94,6 @@ export { Message, SubscriberOptions } from './subscriber';
|
|
|
94
94
|
export { Schema, CreateSchemaResponse, ISchema, SchemaType, SchemaTypes, ICreateSchemaRequest, SchemaEncoding, SchemaView, SchemaViews, Encodings, SchemaMessageMetadata, } from './schema';
|
|
95
95
|
export { PushConfig, SubscriptionMetadata, SubscriptionOptions, SubscriptionCloseCallback, CreateSubscriptionOptions, CreateSubscriptionCallback, CreateSubscriptionResponse, GetSubscriptionOptions, GetSubscriptionCallback, GetSubscriptionResponse, GetSubscriptionMetadataCallback, GetSubscriptionMetadataResponse, SetSubscriptionMetadataCallback, SetSubscriptionMetadataResponse, Subscription, } from './subscription';
|
|
96
96
|
export { CreateTopicCallback, CreateTopicResponse, GetTopicCallback, GetTopicResponse, GetTopicOptions, GetTopicMetadataCallback, GetTopicMetadataResponse, GetTopicSubscriptionsCallback, GetTopicSubscriptionsResponse, SetTopicMetadataCallback, SetTopicMetadataResponse, Topic, TopicMetadata, } from './topic';
|
|
97
|
+
export { Duration, TotalOfUnit, DurationLike } from './temporal';
|
|
97
98
|
import * as protos from '../protos/protos';
|
|
98
99
|
export { protos };
|
package/build/src/index.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.protos = exports.Topic = exports.Subscription = exports.Encodings = exports.SchemaViews = exports.SchemaTypes = exports.Schema = exports.Message = exports.Snapshot = exports.PubSub = exports.PublishError = exports.IAM = exports.v1 = void 0;
|
|
18
|
+
exports.protos = exports.Duration = exports.Topic = exports.Subscription = exports.Encodings = exports.SchemaViews = exports.SchemaTypes = exports.Schema = exports.Message = exports.Snapshot = exports.PubSub = exports.PublishError = exports.IAM = exports.v1 = void 0;
|
|
19
19
|
/**
|
|
20
20
|
* @namespace google.pubsub.v1
|
|
21
21
|
*/
|
|
@@ -104,6 +104,8 @@ var subscription_1 = require("./subscription");
|
|
|
104
104
|
Object.defineProperty(exports, "Subscription", { enumerable: true, get: function () { return subscription_1.Subscription; } });
|
|
105
105
|
var topic_1 = require("./topic");
|
|
106
106
|
Object.defineProperty(exports, "Topic", { enumerable: true, get: function () { return topic_1.Topic; } });
|
|
107
|
+
var temporal_1 = require("./temporal");
|
|
108
|
+
Object.defineProperty(exports, "Duration", { enumerable: true, get: function () { return temporal_1.Duration; } });
|
|
107
109
|
if (process.env.DEBUG_GRPC) {
|
|
108
110
|
console.info('gRPC logging set to verbose');
|
|
109
111
|
const grpc = require('google-gax').grpc;
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH;;GAEG;AACH;;GAEG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;GAWG;AACH,2BAA2B;AACnB,gBAAE;AAEV,6BAUe;AADb,0FAAA,GAAG,OAAA;AAIL,2DAAuD;AAA/C,6GAAA,YAAY,OAAA;AAEpB,mCAckB;AAFhB,gGAAA,MAAM,OAAA;AAGR,uCAMoB;AADlB,oGAAA,QAAQ,OAAA;AAEV,2CAAwD;AAAhD,qGAAA,OAAO,OAAA;AACf,mCAYkB;AAXhB,gGAAA,MAAM,OAAA;AAIN,qGAAA,WAAW,OAAA;AAIX,qGAAA,WAAW,OAAA;AACX,mGAAA,SAAS,OAAA;AAGX,+CAgBwB;AADtB,4GAAA,YAAY,OAAA;AAEd,iCAciB;AAFf,8FAAA,KAAK,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH;;GAEG;AACH;;GAEG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;GAWG;AACH,2BAA2B;AACnB,gBAAE;AAEV,6BAUe;AADb,0FAAA,GAAG,OAAA;AAIL,2DAAuD;AAA/C,6GAAA,YAAY,OAAA;AAEpB,mCAckB;AAFhB,gGAAA,MAAM,OAAA;AAGR,uCAMoB;AADlB,oGAAA,QAAQ,OAAA;AAEV,2CAAwD;AAAhD,qGAAA,OAAO,OAAA;AACf,mCAYkB;AAXhB,gGAAA,MAAM,OAAA;AAIN,qGAAA,WAAW,OAAA;AAIX,qGAAA,WAAW,OAAA;AACX,mGAAA,SAAS,OAAA;AAGX,+CAgBwB;AADtB,4GAAA,YAAY,OAAA;AAEd,iCAciB;AAFf,8FAAA,KAAK,OAAA;AAGP,uCAA+D;AAAvD,oGAAA,QAAQ,OAAA;AAEhB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;IAC1B,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CAC/C;AACD,2CAA2C;AACnC,wBAAM"}
|
|
@@ -36,7 +36,7 @@ export interface FlowControlOptions {
|
|
|
36
36
|
* allow message data to consume. (Default: 100MB) It's possible that this
|
|
37
37
|
* value will be exceeded, since messages are received in batches.
|
|
38
38
|
* @property {number} [maxExtensionMinutes=60] The maximum duration (in minutes)
|
|
39
|
-
*
|
|
39
|
+
* to extend the message deadline before redelivering.
|
|
40
40
|
* @property {number} [maxMessages=1000] The desired number of messages to allow
|
|
41
41
|
* in memory before pausing the message stream. Unless allowExcessMessages
|
|
42
42
|
* is set to false, it is very likely that this value will be exceeded since
|
|
@@ -30,7 +30,7 @@ const default_options_1 = require("./default-options");
|
|
|
30
30
|
* allow message data to consume. (Default: 100MB) It's possible that this
|
|
31
31
|
* value will be exceeded, since messages are received in batches.
|
|
32
32
|
* @property {number} [maxExtensionMinutes=60] The maximum duration (in minutes)
|
|
33
|
-
*
|
|
33
|
+
* to extend the message deadline before redelivering.
|
|
34
34
|
* @property {number} [maxMessages=1000] The desired number of messages to allow
|
|
35
35
|
* in memory before pausing the message stream. Unless allowExcessMessages
|
|
36
36
|
* is set to false, it is very likely that this value will be exceeded since
|
|
@@ -23,6 +23,7 @@ import { BatchOptions } from './message-queues';
|
|
|
23
23
|
import { MessageStreamOptions } from './message-stream';
|
|
24
24
|
import { Subscription } from './subscription';
|
|
25
25
|
import { SubscriberClient } from './v1';
|
|
26
|
+
import { Duration } from './temporal';
|
|
26
27
|
export declare type PullResponse = google.pubsub.v1.IStreamingPullResponse;
|
|
27
28
|
export declare type SubscriptionProperties = google.pubsub.v1.StreamingPullResponse.ISubscriptionProperties;
|
|
28
29
|
/**
|
|
@@ -109,19 +110,18 @@ export declare class Message {
|
|
|
109
110
|
*/
|
|
110
111
|
nack(): void;
|
|
111
112
|
}
|
|
112
|
-
export interface SubscriberOptions {
|
|
113
|
-
ackDeadline?: number;
|
|
114
|
-
batching?: BatchOptions;
|
|
115
|
-
flowControl?: FlowControlOptions;
|
|
116
|
-
useLegacyFlowControl?: boolean;
|
|
117
|
-
streamingOptions?: MessageStreamOptions;
|
|
118
|
-
enableOpenTelemetryTracing?: boolean;
|
|
119
|
-
}
|
|
120
113
|
/**
|
|
121
114
|
* @typedef {object} SubscriberOptions
|
|
122
115
|
* @property {number} [ackDeadline=10] Acknowledge deadline in seconds. If left
|
|
123
|
-
* unset the initial value will be 10 seconds, but it will evolve into the
|
|
124
|
-
* 99th percentile time it takes to acknowledge a message
|
|
116
|
+
* unset, the initial value will be 10 seconds, but it will evolve into the
|
|
117
|
+
* 99th percentile time it takes to acknowledge a message, subject to the
|
|
118
|
+
* limitations of minAckDeadline and maxAckDeadline. If ackDeadline is set
|
|
119
|
+
* by the user, then the min/max values will be set to match it. New code
|
|
120
|
+
* should prefer setting minAckDeadline and maxAckDeadline directly.
|
|
121
|
+
* @property {Duration} [minAckDeadline] The minimum time that ackDeadline should
|
|
122
|
+
* ever have, while it's under library control.
|
|
123
|
+
* @property {Duration} [maxAckDeadline] The maximum time that ackDeadline should
|
|
124
|
+
* ever have, while it's under library control.
|
|
125
125
|
* @property {BatchOptions} [batching] Request batching options.
|
|
126
126
|
* @property {FlowControlOptions} [flowControl] Flow control options.
|
|
127
127
|
* @property {boolean} [useLegacyFlowControl] Disables enforcing flow control
|
|
@@ -129,6 +129,17 @@ export interface SubscriberOptions {
|
|
|
129
129
|
* of only enforcing flow control at the client side.
|
|
130
130
|
* @property {MessageStreamOptions} [streamingOptions] Streaming options.
|
|
131
131
|
*/
|
|
132
|
+
export interface SubscriberOptions {
|
|
133
|
+
/** @deprecated Use minAckDeadline and maxAckDeadline. */
|
|
134
|
+
ackDeadline?: number;
|
|
135
|
+
minAckDeadline?: Duration;
|
|
136
|
+
maxAckDeadline?: Duration;
|
|
137
|
+
batching?: BatchOptions;
|
|
138
|
+
flowControl?: FlowControlOptions;
|
|
139
|
+
useLegacyFlowControl?: boolean;
|
|
140
|
+
streamingOptions?: MessageStreamOptions;
|
|
141
|
+
enableOpenTelemetryTracing?: boolean;
|
|
142
|
+
}
|
|
132
143
|
/**
|
|
133
144
|
* Subscriber class is used to manage all message related functionality.
|
|
134
145
|
*
|
|
@@ -147,7 +158,6 @@ export declare class Subscriber extends EventEmitter {
|
|
|
147
158
|
private _acks;
|
|
148
159
|
private _histogram;
|
|
149
160
|
private _inventory;
|
|
150
|
-
private _isUserSetDeadline;
|
|
151
161
|
private _useOpentelemetry;
|
|
152
162
|
private _latencies;
|
|
153
163
|
private _modAcks;
|
|
@@ -159,7 +169,28 @@ export declare class Subscriber extends EventEmitter {
|
|
|
159
169
|
subscriptionProperties?: SubscriptionProperties;
|
|
160
170
|
constructor(subscription: Subscription, options?: {});
|
|
161
171
|
/**
|
|
162
|
-
*
|
|
172
|
+
* Update our ack extension time that will be used by the lease manager
|
|
173
|
+
* for sending modAcks.
|
|
174
|
+
*
|
|
175
|
+
* Should not be called from outside this class, except for unit tests.
|
|
176
|
+
*
|
|
177
|
+
* @param {number} [ackTimeSeconds] The number of seconds that the last
|
|
178
|
+
* ack took after the message was received. If this is undefined, then
|
|
179
|
+
* we won't update the histogram, but we will still recalculate the
|
|
180
|
+
* ackDeadline based on the situation.
|
|
181
|
+
*
|
|
182
|
+
* @private
|
|
183
|
+
*/
|
|
184
|
+
updateAckDeadline(ackTimeSeconds?: number): void;
|
|
185
|
+
private getMinMaxDeadlines;
|
|
186
|
+
/**
|
|
187
|
+
* Returns true if an exactly once subscription has been detected.
|
|
188
|
+
*
|
|
189
|
+
* @private
|
|
190
|
+
*/
|
|
191
|
+
get isExactlyOnce(): boolean;
|
|
192
|
+
/**
|
|
193
|
+
* Sets our subscription properties from incoming messages.
|
|
163
194
|
*
|
|
164
195
|
* @param {SubscriptionProperties} subscriptionProperties The new properties.
|
|
165
196
|
* @private
|
package/build/src/subscriber.js
CHANGED
|
@@ -29,6 +29,7 @@ const message_stream_1 = require("./message-stream");
|
|
|
29
29
|
const default_options_1 = require("./default-options");
|
|
30
30
|
const opentelemetry_tracing_1 = require("./opentelemetry-tracing");
|
|
31
31
|
const util_1 = require("./util");
|
|
32
|
+
const temporal_1 = require("./temporal");
|
|
32
33
|
/**
|
|
33
34
|
* Date object with nanosecond precision. Supports all standard Date arguments
|
|
34
35
|
* in addition to several custom types.
|
|
@@ -187,18 +188,7 @@ class Message {
|
|
|
187
188
|
}
|
|
188
189
|
}
|
|
189
190
|
exports.Message = Message;
|
|
190
|
-
|
|
191
|
-
* @typedef {object} SubscriberOptions
|
|
192
|
-
* @property {number} [ackDeadline=10] Acknowledge deadline in seconds. If left
|
|
193
|
-
* unset the initial value will be 10 seconds, but it will evolve into the
|
|
194
|
-
* 99th percentile time it takes to acknowledge a message.
|
|
195
|
-
* @property {BatchOptions} [batching] Request batching options.
|
|
196
|
-
* @property {FlowControlOptions} [flowControl] Flow control options.
|
|
197
|
-
* @property {boolean} [useLegacyFlowControl] Disables enforcing flow control
|
|
198
|
-
* settings at the Cloud PubSub server and uses the less accurate method
|
|
199
|
-
* of only enforcing flow control at the client side.
|
|
200
|
-
* @property {MessageStreamOptions} [streamingOptions] Streaming options.
|
|
201
|
-
*/
|
|
191
|
+
const minAckDeadlineForExactlyOnce = temporal_1.Duration.from({ seconds: 60 });
|
|
202
192
|
/**
|
|
203
193
|
* Subscriber class is used to manage all message related functionality.
|
|
204
194
|
*
|
|
@@ -211,12 +201,11 @@ exports.Message = Message;
|
|
|
211
201
|
class Subscriber extends events_1.EventEmitter {
|
|
212
202
|
constructor(subscription, options = {}) {
|
|
213
203
|
super();
|
|
214
|
-
this.ackDeadline =
|
|
204
|
+
this.ackDeadline = default_options_1.defaultOptions.subscription.ackDeadline;
|
|
215
205
|
this.maxMessages = default_options_1.defaultOptions.subscription.maxOutstandingMessages;
|
|
216
206
|
this.maxBytes = default_options_1.defaultOptions.subscription.maxOutstandingBytes;
|
|
217
207
|
this.useLegacyFlowControl = false;
|
|
218
208
|
this.isOpen = false;
|
|
219
|
-
this._isUserSetDeadline = false;
|
|
220
209
|
this._useOpentelemetry = false;
|
|
221
210
|
this._histogram = new histogram_1.Histogram({ min: 10, max: 600 });
|
|
222
211
|
this._latencies = new histogram_1.Histogram();
|
|
@@ -225,19 +214,82 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
225
214
|
this.setOptions(options);
|
|
226
215
|
}
|
|
227
216
|
/**
|
|
228
|
-
*
|
|
217
|
+
* Update our ack extension time that will be used by the lease manager
|
|
218
|
+
* for sending modAcks.
|
|
219
|
+
*
|
|
220
|
+
* Should not be called from outside this class, except for unit tests.
|
|
221
|
+
*
|
|
222
|
+
* @param {number} [ackTimeSeconds] The number of seconds that the last
|
|
223
|
+
* ack took after the message was received. If this is undefined, then
|
|
224
|
+
* we won't update the histogram, but we will still recalculate the
|
|
225
|
+
* ackDeadline based on the situation.
|
|
226
|
+
*
|
|
227
|
+
* @private
|
|
228
|
+
*/
|
|
229
|
+
updateAckDeadline(ackTimeSeconds) {
|
|
230
|
+
// Start with the value we already have.
|
|
231
|
+
let ackDeadline = this.ackDeadline;
|
|
232
|
+
// If we got an ack time reading, update the histogram (and ackDeadline).
|
|
233
|
+
if (ackTimeSeconds) {
|
|
234
|
+
this._histogram.add(ackTimeSeconds);
|
|
235
|
+
ackDeadline = this._histogram.percentile(99);
|
|
236
|
+
}
|
|
237
|
+
// Grab our current min/max deadline values, based on whether exactly-once
|
|
238
|
+
// is enabled, and the defaults.
|
|
239
|
+
const [minDeadline, maxDeadline] = this.getMinMaxDeadlines();
|
|
240
|
+
if (minDeadline) {
|
|
241
|
+
ackDeadline = Math.max(ackDeadline, minDeadline.totalOf('second'));
|
|
242
|
+
}
|
|
243
|
+
if (maxDeadline) {
|
|
244
|
+
ackDeadline = Math.min(ackDeadline, maxDeadline.totalOf('second'));
|
|
245
|
+
}
|
|
246
|
+
// Set the bounded result back.
|
|
247
|
+
this.ackDeadline = ackDeadline;
|
|
248
|
+
}
|
|
249
|
+
getMinMaxDeadlines() {
|
|
250
|
+
var _a, _b;
|
|
251
|
+
// If this is an exactly-once subscription, and the user didn't set their
|
|
252
|
+
// own minimum ack periods, set it to the default for exactly-once.
|
|
253
|
+
const defaultMinDeadline = this.isExactlyOnce
|
|
254
|
+
? minAckDeadlineForExactlyOnce
|
|
255
|
+
: default_options_1.defaultOptions.subscription.minAckDeadline;
|
|
256
|
+
const defaultMaxDeadline = default_options_1.defaultOptions.subscription.maxAckDeadline;
|
|
257
|
+
// Pull in any user-set min/max.
|
|
258
|
+
const minDeadline = (_a = this._options.minAckDeadline) !== null && _a !== void 0 ? _a : defaultMinDeadline;
|
|
259
|
+
const maxDeadline = (_b = this._options.maxAckDeadline) !== null && _b !== void 0 ? _b : defaultMaxDeadline;
|
|
260
|
+
return [minDeadline, maxDeadline];
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Returns true if an exactly once subscription has been detected.
|
|
264
|
+
*
|
|
265
|
+
* @private
|
|
266
|
+
*/
|
|
267
|
+
get isExactlyOnce() {
|
|
268
|
+
if (!this.subscriptionProperties) {
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
return !!this.subscriptionProperties.exactlyOnceDeliveryEnabled;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Sets our subscription properties from incoming messages.
|
|
229
275
|
*
|
|
230
276
|
* @param {SubscriptionProperties} subscriptionProperties The new properties.
|
|
231
277
|
* @private
|
|
232
278
|
*/
|
|
233
279
|
setSubscriptionProperties(subscriptionProperties) {
|
|
280
|
+
const previouslyEnabled = this.isExactlyOnce;
|
|
234
281
|
this.subscriptionProperties = subscriptionProperties;
|
|
235
|
-
// If this is an exactly-once subscription
|
|
282
|
+
// If this is an exactly-once subscription...
|
|
236
283
|
if (this.subscriptionProperties.exactlyOnceDeliveryEnabled) {
|
|
284
|
+
// Warn the user that they may have difficulty.
|
|
237
285
|
this._errorLog.doMaybe(() => console.error('WARNING: Exactly-once subscriptions are not yet supported ' +
|
|
238
286
|
'by the Node client library. This feature will be added ' +
|
|
239
287
|
'in a future release.'));
|
|
240
288
|
}
|
|
289
|
+
// Update ackDeadline in case the flag switched.
|
|
290
|
+
if (previouslyEnabled !== this.isExactlyOnce) {
|
|
291
|
+
this.updateAckDeadline();
|
|
292
|
+
}
|
|
241
293
|
}
|
|
242
294
|
/**
|
|
243
295
|
* The 99th percentile of request latencies.
|
|
@@ -274,11 +326,8 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
274
326
|
* @private
|
|
275
327
|
*/
|
|
276
328
|
async ack(message) {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
this._histogram.add(ackTimeSeconds);
|
|
280
|
-
this.ackDeadline = this._histogram.percentile(99);
|
|
281
|
-
}
|
|
329
|
+
const ackTimeSeconds = (Date.now() - message.received) / 1000;
|
|
330
|
+
this.updateAckDeadline(ackTimeSeconds);
|
|
282
331
|
this._acks.add(message);
|
|
283
332
|
await this._acks.onFlush();
|
|
284
333
|
this._inventory.remove(message);
|
|
@@ -369,9 +418,13 @@ class Subscriber extends events_1.EventEmitter {
|
|
|
369
418
|
setOptions(options) {
|
|
370
419
|
this._options = options;
|
|
371
420
|
this._useOpentelemetry = options.enableOpenTelemetryTracing || false;
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
421
|
+
// The user-set ackDeadline value basically pegs the extension time.
|
|
422
|
+
// We'll emulate it by overwriting min/max.
|
|
423
|
+
const passedAckDeadline = options.ackDeadline;
|
|
424
|
+
if (passedAckDeadline !== undefined) {
|
|
425
|
+
this.ackDeadline = passedAckDeadline;
|
|
426
|
+
options.minAckDeadline = temporal_1.Duration.from({ seconds: passedAckDeadline });
|
|
427
|
+
options.maxAckDeadline = temporal_1.Duration.from({ seconds: passedAckDeadline });
|
|
375
428
|
}
|
|
376
429
|
this.useLegacyFlowControl = options.useLegacyFlowControl || false;
|
|
377
430
|
if (options.flowControl) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriber.js","sourceRoot":"","sources":["../../src/subscriber.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subscriber.js","sourceRoot":"","sources":["../../src/subscriber.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified interface analogous to the tc39 Temporal.Duration
|
|
3
|
+
* parameter to from(). This doesn't support the full gamut (years, days).
|
|
4
|
+
*/
|
|
5
|
+
export interface DurationLike {
|
|
6
|
+
hours?: number;
|
|
7
|
+
minutes?: number;
|
|
8
|
+
seconds?: number;
|
|
9
|
+
millis?: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Simplified list of values to pass to Duration.totalOf(). This
|
|
13
|
+
* list is taken from the tc39 Temporal.Duration proposal, but
|
|
14
|
+
* larger and smaller units have been left off.
|
|
15
|
+
*/
|
|
16
|
+
export declare type TotalOfUnit = 'hour' | 'minute' | 'second' | 'millisecond';
|
|
17
|
+
/**
|
|
18
|
+
* Duration class with an interface similar to the tc39 Temporal
|
|
19
|
+
* proposal. Since it's not fully finalized, and polyfills have
|
|
20
|
+
* inconsistent compatibility, for now this shim class will be
|
|
21
|
+
* used to set durations in Pub/Sub.
|
|
22
|
+
*
|
|
23
|
+
* This class will remain here for at least the next major version,
|
|
24
|
+
* eventually to be replaced by the tc39 Temporal built-in.
|
|
25
|
+
*
|
|
26
|
+
* https://tc39.es/proposal-temporal/docs/duration.html
|
|
27
|
+
*/
|
|
28
|
+
export declare class Duration {
|
|
29
|
+
private millis;
|
|
30
|
+
private static secondInMillis;
|
|
31
|
+
private static minuteInMillis;
|
|
32
|
+
private static hourInMillis;
|
|
33
|
+
private constructor();
|
|
34
|
+
/**
|
|
35
|
+
* Calculates the total number of units of type 'totalOf' that would
|
|
36
|
+
* fit inside this duration.
|
|
37
|
+
*/
|
|
38
|
+
totalOf(totalOf: TotalOfUnit): number;
|
|
39
|
+
/**
|
|
40
|
+
* Creates a Duration from a DurationLike, which is an object
|
|
41
|
+
* containing zero or more of the following: hours, seconds,
|
|
42
|
+
* minutes, millis.
|
|
43
|
+
*/
|
|
44
|
+
static from(durationLike: DurationLike): Duration;
|
|
45
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright 2022 Google LLC
|
|
3
|
+
//
|
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
// you may not use this file except in compliance with the License.
|
|
6
|
+
// You may obtain a copy of the License at
|
|
7
|
+
//
|
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
//
|
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
// See the License for the specific language governing permissions and
|
|
14
|
+
// limitations under the License.
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.Duration = void 0;
|
|
17
|
+
/**
|
|
18
|
+
* Duration class with an interface similar to the tc39 Temporal
|
|
19
|
+
* proposal. Since it's not fully finalized, and polyfills have
|
|
20
|
+
* inconsistent compatibility, for now this shim class will be
|
|
21
|
+
* used to set durations in Pub/Sub.
|
|
22
|
+
*
|
|
23
|
+
* This class will remain here for at least the next major version,
|
|
24
|
+
* eventually to be replaced by the tc39 Temporal built-in.
|
|
25
|
+
*
|
|
26
|
+
* https://tc39.es/proposal-temporal/docs/duration.html
|
|
27
|
+
*/
|
|
28
|
+
class Duration {
|
|
29
|
+
constructor(millis) {
|
|
30
|
+
this.millis = millis;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Calculates the total number of units of type 'totalOf' that would
|
|
34
|
+
* fit inside this duration.
|
|
35
|
+
*/
|
|
36
|
+
totalOf(totalOf) {
|
|
37
|
+
switch (totalOf) {
|
|
38
|
+
case 'hour':
|
|
39
|
+
return this.millis / Duration.hourInMillis;
|
|
40
|
+
case 'minute':
|
|
41
|
+
return this.millis / Duration.minuteInMillis;
|
|
42
|
+
case 'second':
|
|
43
|
+
return this.millis / Duration.secondInMillis;
|
|
44
|
+
case 'millisecond':
|
|
45
|
+
return this.millis;
|
|
46
|
+
default:
|
|
47
|
+
throw new Error(`Invalid unit in call to totalOf(): ${totalOf}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates a Duration from a DurationLike, which is an object
|
|
52
|
+
* containing zero or more of the following: hours, seconds,
|
|
53
|
+
* minutes, millis.
|
|
54
|
+
*/
|
|
55
|
+
static from(durationLike) {
|
|
56
|
+
var _a, _b, _c, _d;
|
|
57
|
+
let millis = (_a = durationLike.millis) !== null && _a !== void 0 ? _a : 0;
|
|
58
|
+
millis += ((_b = durationLike.seconds) !== null && _b !== void 0 ? _b : 0) * Duration.secondInMillis;
|
|
59
|
+
millis += ((_c = durationLike.minutes) !== null && _c !== void 0 ? _c : 0) * Duration.minuteInMillis;
|
|
60
|
+
millis += ((_d = durationLike.hours) !== null && _d !== void 0 ? _d : 0) * Duration.hourInMillis;
|
|
61
|
+
return new Duration(millis);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.Duration = Duration;
|
|
65
|
+
Duration.secondInMillis = 1000;
|
|
66
|
+
Duration.minuteInMillis = Duration.secondInMillis * 60;
|
|
67
|
+
Duration.hourInMillis = Duration.minuteInMillis * 60;
|
|
68
|
+
//# sourceMappingURL=temporal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"temporal.js","sourceRoot":"","sources":["../../src/temporal.ts"],"names":[],"mappings":";AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;;;AA6BjC;;;;;;;;;;GAUG;AACH,MAAa,QAAQ;IAOnB,YAAoB,MAAc;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,OAAoB;QAC1B,QAAQ,OAAO,EAAE;YACf,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC7C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC;YAC/C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC;YAC/C,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB;gBACE,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;SACpE;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,YAA0B;;QACpC,IAAI,MAAM,GAAG,MAAA,YAAY,CAAC,MAAM,mCAAI,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,MAAA,YAAY,CAAC,OAAO,mCAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC;QAChE,MAAM,IAAI,CAAC,MAAA,YAAY,CAAC,OAAO,mCAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC;QAChE,MAAM,IAAI,CAAC,MAAA,YAAY,CAAC,KAAK,mCAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC;QAE5D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;;AA1CH,4BA2CC;AAxCgB,uBAAc,GAAG,IAAI,CAAC;AACtB,uBAAc,GAAG,QAAQ,CAAC,cAAc,GAAG,EAAE,CAAC;AAC9C,qBAAY,GAAG,QAAQ,CAAC,cAAc,GAAG,EAAE,CAAC"}
|