@temporalio/client 1.3.0 → 1.4.1
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/lib/async-completion-client.d.ts +1 -1
- package/lib/async-completion-client.js +11 -11
- package/lib/async-completion-client.js.map +1 -1
- package/lib/client.d.ts +1 -1
- package/lib/client.js +3 -3
- package/lib/client.js.map +1 -1
- package/lib/connection.d.ts +1 -1
- package/lib/connection.js +3 -3
- package/lib/connection.js.map +1 -1
- package/lib/grpc-retry.d.ts +51 -8
- package/lib/grpc-retry.js +73 -46
- package/lib/grpc-retry.js.map +1 -1
- package/lib/index.d.ts +5 -6
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/interceptors.d.ts +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/workflow-client.d.ts +2 -1
- package/lib/workflow-client.js +36 -39
- package/lib/workflow-client.js.map +1 -1
- package/lib/workflow-options.d.ts +2 -2
- package/lib/workflow-options.js +1 -1
- package/lib/workflow-options.js.map +1 -1
- package/package.json +4 -6
- package/src/async-completion-client.ts +2 -2
- package/src/client.ts +2 -2
- package/src/connection.ts +1 -1
- package/src/grpc-retry.ts +129 -56
- package/src/index.ts +5 -5
- package/src/interceptors.ts +1 -1
- package/src/types.ts +1 -1
- package/src/workflow-client.ts +16 -18
- package/src/workflow-options.ts +2 -6
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DataConverter, LoadedDataConverter } from '@temporalio/common';
|
|
2
|
-
import { Replace } from '@temporalio/
|
|
2
|
+
import { Replace } from '@temporalio/common/lib/type-helpers';
|
|
3
3
|
import { ConnectionLike, WorkflowService } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* Thrown by {@link AsyncCompletionClient} when trying to complete or heartbeat an Activity that does not exist in the
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.AsyncCompletionClient = exports.defaultAsyncCompletionClientOptions = exports.ActivityCancelledError = exports.ActivityCompletionError = exports.ActivityNotFoundError = void 0;
|
|
7
7
|
const constants_1 = require("@grpc/grpc-js/build/src/constants");
|
|
8
8
|
const common_1 = require("@temporalio/common");
|
|
9
|
-
const
|
|
9
|
+
const internal_non_workflow_1 = require("@temporalio/common/lib/internal-non-workflow");
|
|
10
10
|
const os_1 = __importDefault(require("os"));
|
|
11
11
|
const connection_1 = require("./connection");
|
|
12
12
|
const errors_1 = require("./errors");
|
|
@@ -61,10 +61,10 @@ class AsyncCompletionClient {
|
|
|
61
61
|
constructor(options) {
|
|
62
62
|
this.connection = options?.connection ?? connection_1.Connection.lazy();
|
|
63
63
|
const dataConverter = options?.dataConverter;
|
|
64
|
-
const loadedDataConverter = (0,
|
|
64
|
+
const loadedDataConverter = (0, internal_non_workflow_1.isLoadedDataConverter)(dataConverter) ? dataConverter : (0, internal_non_workflow_1.loadDataConverter)(dataConverter);
|
|
65
65
|
this.options = {
|
|
66
66
|
...defaultAsyncCompletionClientOptions(),
|
|
67
|
-
...(0,
|
|
67
|
+
...(0, internal_non_workflow_1.filterNullAndUndefined)(options ?? {}),
|
|
68
68
|
loadedDataConverter,
|
|
69
69
|
};
|
|
70
70
|
}
|
|
@@ -99,7 +99,7 @@ class AsyncCompletionClient {
|
|
|
99
99
|
identity: this.options.identity,
|
|
100
100
|
namespace: this.options.namespace,
|
|
101
101
|
taskToken: taskTokenOrFullActivityId,
|
|
102
|
-
result: { payloads: await (0,
|
|
102
|
+
result: { payloads: await (0, internal_non_workflow_1.encodeToPayloads)(this.dataConverter, result) },
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
105
|
else {
|
|
@@ -107,7 +107,7 @@ class AsyncCompletionClient {
|
|
|
107
107
|
identity: this.options.identity,
|
|
108
108
|
namespace: this.options.namespace,
|
|
109
109
|
...taskTokenOrFullActivityId,
|
|
110
|
-
result: { payloads: await (0,
|
|
110
|
+
result: { payloads: await (0, internal_non_workflow_1.encodeToPayloads)(this.dataConverter, result) },
|
|
111
111
|
});
|
|
112
112
|
}
|
|
113
113
|
}
|
|
@@ -122,7 +122,7 @@ class AsyncCompletionClient {
|
|
|
122
122
|
identity: this.options.identity,
|
|
123
123
|
namespace: this.options.namespace,
|
|
124
124
|
taskToken: taskTokenOrFullActivityId,
|
|
125
|
-
failure: await (0,
|
|
125
|
+
failure: await (0, internal_non_workflow_1.encodeErrorToFailure)(this.dataConverter, (0, common_1.ensureTemporalFailure)(err)),
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
128
|
else {
|
|
@@ -130,7 +130,7 @@ class AsyncCompletionClient {
|
|
|
130
130
|
identity: this.options.identity,
|
|
131
131
|
namespace: this.options.namespace,
|
|
132
132
|
...taskTokenOrFullActivityId,
|
|
133
|
-
failure: await (0,
|
|
133
|
+
failure: await (0, internal_non_workflow_1.encodeErrorToFailure)(this.dataConverter, err),
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
136
|
}
|
|
@@ -145,7 +145,7 @@ class AsyncCompletionClient {
|
|
|
145
145
|
identity: this.options.identity,
|
|
146
146
|
namespace: this.options.namespace,
|
|
147
147
|
taskToken: taskTokenOrFullActivityId,
|
|
148
|
-
details: { payloads: await (0,
|
|
148
|
+
details: { payloads: await (0, internal_non_workflow_1.encodeToPayloads)(this.dataConverter, details) },
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
151
|
else {
|
|
@@ -153,7 +153,7 @@ class AsyncCompletionClient {
|
|
|
153
153
|
identity: this.options.identity,
|
|
154
154
|
namespace: this.options.namespace,
|
|
155
155
|
...taskTokenOrFullActivityId,
|
|
156
|
-
details: { payloads: await (0,
|
|
156
|
+
details: { payloads: await (0, internal_non_workflow_1.encodeToPayloads)(this.dataConverter, details) },
|
|
157
157
|
});
|
|
158
158
|
}
|
|
159
159
|
}
|
|
@@ -168,7 +168,7 @@ class AsyncCompletionClient {
|
|
|
168
168
|
identity: this.options.identity,
|
|
169
169
|
namespace: this.options.namespace,
|
|
170
170
|
taskToken: taskTokenOrFullActivityId,
|
|
171
|
-
details: { payloads: await (0,
|
|
171
|
+
details: { payloads: await (0, internal_non_workflow_1.encodeToPayloads)(this.dataConverter, details) },
|
|
172
172
|
});
|
|
173
173
|
if (cancelRequested) {
|
|
174
174
|
throw new ActivityCancelledError('cancelled');
|
|
@@ -179,7 +179,7 @@ class AsyncCompletionClient {
|
|
|
179
179
|
identity: this.options.identity,
|
|
180
180
|
namespace: this.options.namespace,
|
|
181
181
|
...taskTokenOrFullActivityId,
|
|
182
|
-
details: { payloads: await (0,
|
|
182
|
+
details: { payloads: await (0, internal_non_workflow_1.encodeToPayloads)(this.dataConverter, details) },
|
|
183
183
|
});
|
|
184
184
|
if (cancelRequested) {
|
|
185
185
|
throw new ActivityCancelledError('cancelled');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-completion-client.js","sourceRoot":"","sources":["../src/async-completion-client.ts"],"names":[],"mappings":";;;;;;AAAA,iEAA2D;AAC3D,+CAA+F;AAC/F,
|
|
1
|
+
{"version":3,"file":"async-completion-client.js","sourceRoot":"","sources":["../src/async-completion-client.ts"],"names":[],"mappings":"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"}
|
package/lib/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DataConverter, LoadedDataConverter } from '@temporalio/common';
|
|
2
|
-
import { Replace } from '@temporalio/
|
|
2
|
+
import { Replace } from '@temporalio/common/lib/type-helpers';
|
|
3
3
|
import { temporal } from '@temporalio/proto';
|
|
4
4
|
import { AsyncCompletionClient } from './async-completion-client';
|
|
5
5
|
import { ClientInterceptors } from './interceptors';
|
package/lib/client.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Client = exports.defaultClientOptions = void 0;
|
|
7
|
-
const
|
|
7
|
+
const internal_non_workflow_1 = require("@temporalio/common/lib/internal-non-workflow");
|
|
8
8
|
const proto_1 = require("@temporalio/proto");
|
|
9
9
|
const os_1 = __importDefault(require("os"));
|
|
10
10
|
const async_completion_client_1 = require("./async-completion-client");
|
|
@@ -30,8 +30,8 @@ class Client {
|
|
|
30
30
|
this.connection = options?.connection ?? connection_1.Connection.lazy();
|
|
31
31
|
this.options = {
|
|
32
32
|
...defaultClientOptions(),
|
|
33
|
-
...(0,
|
|
34
|
-
loadedDataConverter: (0,
|
|
33
|
+
...(0, internal_non_workflow_1.filterNullAndUndefined)(options ?? {}),
|
|
34
|
+
loadedDataConverter: (0, internal_non_workflow_1.loadDataConverter)(options?.dataConverter),
|
|
35
35
|
};
|
|
36
36
|
const { workflow, loadedDataConverter, interceptors, ...base } = this.options;
|
|
37
37
|
this.workflow = new workflow_client_1.WorkflowClient({
|
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;;AACA,wFAAyG;AAEzG,6CAA6C;AAC7C,4CAAoB;AACpB,uEAAkE;AAClE,6CAA0C;AAG1C,uDAAmD;AA2DnD,SAAgB,oBAAoB;IAClC,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,YAAE,CAAC,QAAQ,EAAE,EAAE;QAC3C,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE;YACR,oBAAoB,EAAE,gBAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,kCAAkC;SACpG;KACF,CAAC;AACJ,CAAC;AAVD,oDAUC;AAED;;GAEG;AACH,MAAa,MAAM;IAejB,YAAY,OAAuB;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,uBAAU,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,oBAAoB,EAAE;YACzB,GAAG,IAAA,8CAAsB,EAAC,OAAO,IAAI,EAAE,CAAC;YACxC,mBAAmB,EAAE,IAAA,yCAAiB,EAAC,OAAO,EAAE,aAAa,CAAC;SAC/D,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAE9E,IAAI,CAAC,QAAQ,GAAG,IAAI,gCAAc,CAAC;YACjC,GAAG,IAAI;YACP,GAAG,QAAQ;YACX,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,mBAAmB;YAClC,YAAY,EAAE,YAAY,CAAC,QAAQ;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,+CAAqB,CAAC;YACxC,GAAG,IAAI;YACP,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,mBAAmB;SACnC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAI,QAAuB,EAAE,EAAoB;QACjE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAI,QAAkB,EAAE,EAAoB;QAC5D,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;CACF;AAnED,wBAmEC"}
|
package/lib/connection.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import * as grpc from '@grpc/grpc-js';
|
|
3
|
-
import { TLSConfig } from '@temporalio/internal-non-workflow
|
|
3
|
+
import { TLSConfig } from '@temporalio/common/lib/internal-non-workflow';
|
|
4
4
|
import { AsyncLocalStorage } from 'async_hooks';
|
|
5
5
|
import type { RPCImpl } from 'protobufjs';
|
|
6
6
|
import { CallContext, HealthService, Metadata, OperatorService, WorkflowService } from './types';
|
package/lib/connection.js
CHANGED
|
@@ -28,7 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.Connection = exports.defaultConnectionOpts = exports.LOCAL_TARGET = void 0;
|
|
30
30
|
const grpc = __importStar(require("@grpc/grpc-js"));
|
|
31
|
-
const
|
|
31
|
+
const internal_non_workflow_1 = require("@temporalio/common/lib/internal-non-workflow");
|
|
32
32
|
const async_hooks_1 = require("async_hooks");
|
|
33
33
|
const errors_1 = require("./errors");
|
|
34
34
|
const grpc_retry_1 = require("./grpc-retry");
|
|
@@ -63,7 +63,7 @@ function normalizeGRPCConfig(options) {
|
|
|
63
63
|
port = port || '7233';
|
|
64
64
|
rest.address = `${host}:${port}`;
|
|
65
65
|
}
|
|
66
|
-
const tls = (0,
|
|
66
|
+
const tls = (0, internal_non_workflow_1.normalizeTlsConfig)(tlsFromConfig);
|
|
67
67
|
if (tls) {
|
|
68
68
|
if (credentials) {
|
|
69
69
|
throw new TypeError('Both `tls` and `credentials` ConnectionOptions were provided');
|
|
@@ -105,7 +105,7 @@ class Connection {
|
|
|
105
105
|
var _a, _b;
|
|
106
106
|
const optionsWithDefaults = {
|
|
107
107
|
...defaultConnectionOpts(),
|
|
108
|
-
...(0,
|
|
108
|
+
...(0, internal_non_workflow_1.filterNullAndUndefined)(normalizeGRPCConfig(options)),
|
|
109
109
|
};
|
|
110
110
|
// Allow overriding this
|
|
111
111
|
(_a = optionsWithDefaults.metadata)['client-name'] ?? (_a['client-name'] = 'temporal-typescript');
|
package/lib/connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/lib/grpc-retry.d.ts
CHANGED
|
@@ -1,24 +1,67 @@
|
|
|
1
1
|
import { Interceptor, StatusObject } from '@grpc/grpc-js';
|
|
2
|
+
/**
|
|
3
|
+
* @experimental
|
|
4
|
+
*/
|
|
2
5
|
export interface GrpcRetryOptions {
|
|
3
|
-
/** Maximum number of allowed retries. Defaults to 10. */
|
|
4
|
-
maxRetries: number;
|
|
5
6
|
/**
|
|
6
|
-
* A function which accepts the current retry attempt (starts at
|
|
7
|
+
* A function which accepts the current retry attempt (starts at 1) and returns the millisecond
|
|
7
8
|
* delay that should be applied before the next retry.
|
|
8
9
|
*/
|
|
9
|
-
delayFunction: (attempt: number) => number;
|
|
10
|
+
delayFunction: (attempt: number, status: StatusObject) => number;
|
|
10
11
|
/**
|
|
11
12
|
* A function which accepts a failed status object and returns true if the call should be retried
|
|
12
13
|
*/
|
|
13
|
-
retryableDecider: (status: StatusObject) => boolean;
|
|
14
|
+
retryableDecider: (attempt: number, status: StatusObject) => boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Options for the backoff formula: `factor ^ attempt * initialIntervalMs(status) * jitter(maxJitter)`
|
|
18
|
+
*
|
|
19
|
+
* @experimental
|
|
20
|
+
*/
|
|
21
|
+
export interface BackoffOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Exponential backoff factor
|
|
24
|
+
*
|
|
25
|
+
* @default 2
|
|
26
|
+
*/
|
|
27
|
+
factor: number;
|
|
28
|
+
/**
|
|
29
|
+
* Maximum number of attempts
|
|
30
|
+
*
|
|
31
|
+
* @default 10
|
|
32
|
+
*/
|
|
33
|
+
maxAttempts: number;
|
|
34
|
+
/**
|
|
35
|
+
* Maximum amount of jitter to apply
|
|
36
|
+
*
|
|
37
|
+
* @default 0.1
|
|
38
|
+
*/
|
|
39
|
+
maxJitter: number;
|
|
40
|
+
/**
|
|
41
|
+
* Function that returns the "initial" backoff interval based on the returned status.
|
|
42
|
+
*
|
|
43
|
+
* The default is 1 second for RESOURCE_EXHAUSTED errors and 20 millis for other retryable errors.
|
|
44
|
+
*/
|
|
45
|
+
initialIntervalMs(status: StatusObject): number;
|
|
46
|
+
/**
|
|
47
|
+
* Function that returns the "maximum" backoff interval based on the returned status.
|
|
48
|
+
*
|
|
49
|
+
* The default is 10 seconds regardless of the status.
|
|
50
|
+
*/
|
|
51
|
+
maxIntervalMs(status: StatusObject): number;
|
|
14
52
|
}
|
|
15
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Generates the default retry behavior based on given backoff options
|
|
55
|
+
*
|
|
56
|
+
* @experimental
|
|
57
|
+
*/
|
|
58
|
+
export declare function defaultGrpcRetryOptions(options?: Partial<BackoffOptions>): GrpcRetryOptions;
|
|
16
59
|
export declare function isRetryableError(status: StatusObject): boolean;
|
|
17
|
-
/** Return backoff amount in ms */
|
|
18
|
-
export declare function backOffAmount(attempt: number): number;
|
|
19
60
|
/**
|
|
20
61
|
* Returns a GRPC interceptor that will perform automatic retries for some types of failed calls
|
|
21
62
|
*
|
|
22
63
|
* @param retryOptions Options for the retry interceptor
|
|
64
|
+
*
|
|
65
|
+
* @experimental
|
|
23
66
|
*/
|
|
24
67
|
export declare function makeGrpcRetryInterceptor(retryOptions: GrpcRetryOptions): Interceptor;
|
package/lib/grpc-retry.js
CHANGED
|
@@ -23,17 +23,43 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.makeGrpcRetryInterceptor = exports.
|
|
26
|
+
exports.makeGrpcRetryInterceptor = exports.isRetryableError = exports.defaultGrpcRetryOptions = void 0;
|
|
27
27
|
const grpc_js_1 = require("@grpc/grpc-js");
|
|
28
28
|
const grpc = __importStar(require("@grpc/grpc-js"));
|
|
29
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Add defaults as documented in {@link BackoffOptions}
|
|
31
|
+
*/
|
|
32
|
+
function withDefaultBackoffOptions({ maxAttempts, factor, maxJitter, initialIntervalMs, }) {
|
|
33
|
+
return {
|
|
34
|
+
maxAttempts: maxAttempts ?? 10,
|
|
35
|
+
factor: factor ?? 2,
|
|
36
|
+
maxJitter: maxJitter ?? 0.1,
|
|
37
|
+
initialIntervalMs: initialIntervalMs ?? defaultInitialIntervalMs,
|
|
38
|
+
maxIntervalMs() {
|
|
39
|
+
return 10000;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Generates the default retry behavior based on given backoff options
|
|
45
|
+
*
|
|
46
|
+
* @experimental
|
|
47
|
+
*/
|
|
48
|
+
function defaultGrpcRetryOptions(options = {}) {
|
|
49
|
+
const { maxAttempts, factor, maxJitter, initialIntervalMs, maxIntervalMs } = withDefaultBackoffOptions(options);
|
|
30
50
|
return {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
51
|
+
delayFunction(attempt, status) {
|
|
52
|
+
return Math.min(maxIntervalMs(status), factor ** attempt * initialIntervalMs(status)) * jitter(maxJitter);
|
|
53
|
+
},
|
|
54
|
+
retryableDecider(attempt, status) {
|
|
55
|
+
return attempt < maxAttempts && isRetryableError(status);
|
|
56
|
+
},
|
|
34
57
|
};
|
|
35
58
|
}
|
|
36
59
|
exports.defaultGrpcRetryOptions = defaultGrpcRetryOptions;
|
|
60
|
+
/**
|
|
61
|
+
* Set of retryable gRPC status codes
|
|
62
|
+
*/
|
|
37
63
|
const retryableCodes = new Set([
|
|
38
64
|
grpc.status.UNKNOWN,
|
|
39
65
|
grpc.status.RESOURCE_EXHAUSTED,
|
|
@@ -46,71 +72,72 @@ function isRetryableError(status) {
|
|
|
46
72
|
return retryableCodes.has(status.code);
|
|
47
73
|
}
|
|
48
74
|
exports.isRetryableError = isRetryableError;
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Calculates random amount of jitter between 0 and `max`
|
|
77
|
+
*/
|
|
78
|
+
function jitter(max) {
|
|
79
|
+
return 1 - max + Math.random() * max * 2;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Default implementation - backs off more on RESOURCE_EXHAUSTED errors
|
|
83
|
+
*/
|
|
84
|
+
function defaultInitialIntervalMs({ code }) {
|
|
85
|
+
// Backoff more on RESOURCE_EXHAUSTED
|
|
86
|
+
if (code === grpc.status.RESOURCE_EXHAUSTED) {
|
|
87
|
+
return 1000;
|
|
88
|
+
}
|
|
89
|
+
return 20;
|
|
52
90
|
}
|
|
53
|
-
exports.backOffAmount = backOffAmount;
|
|
54
91
|
/**
|
|
55
92
|
* Returns a GRPC interceptor that will perform automatic retries for some types of failed calls
|
|
56
93
|
*
|
|
57
94
|
* @param retryOptions Options for the retry interceptor
|
|
95
|
+
*
|
|
96
|
+
* @experimental
|
|
58
97
|
*/
|
|
59
98
|
function makeGrpcRetryInterceptor(retryOptions) {
|
|
60
99
|
return (options, nextCall) => {
|
|
61
|
-
let savedMetadata;
|
|
62
100
|
let savedSendMessage;
|
|
63
101
|
let savedReceiveMessage;
|
|
64
102
|
let savedMessageNext;
|
|
65
103
|
const requester = new grpc_js_1.RequesterBuilder()
|
|
66
104
|
.withStart(function (metadata, _listener, next) {
|
|
67
|
-
|
|
68
|
-
|
|
105
|
+
// First attempt
|
|
106
|
+
let attempt = 1;
|
|
107
|
+
const listener = new grpc_js_1.ListenerBuilder()
|
|
69
108
|
.withOnReceiveMessage((message, next) => {
|
|
70
109
|
savedReceiveMessage = message;
|
|
71
110
|
savedMessageNext = next;
|
|
72
111
|
})
|
|
73
112
|
.withOnReceiveStatus((status, next) => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
onReceiveMessage: (message) => {
|
|
113
|
+
const retry = () => {
|
|
114
|
+
attempt++;
|
|
115
|
+
const call = nextCall(options);
|
|
116
|
+
call.start(metadata, {
|
|
117
|
+
onReceiveMessage(message) {
|
|
80
118
|
savedReceiveMessage = message;
|
|
81
119
|
},
|
|
82
|
-
onReceiveStatus
|
|
83
|
-
if (retryOptions.retryableDecider(status)) {
|
|
84
|
-
if (retries <= retryOptions.maxRetries) {
|
|
85
|
-
setTimeout(() => retry(message, metadata), retryOptions.delayFunction(retries));
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
savedMessageNext(savedReceiveMessage);
|
|
89
|
-
next(status);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
savedMessageNext(savedReceiveMessage);
|
|
94
|
-
// TODO: For reasons that are completely unclear to me, if you pass a handcrafted
|
|
95
|
-
// status object here, node will magically just exit at the end of this line.
|
|
96
|
-
// No warning, no nothing. Here be dragons.
|
|
97
|
-
next(status);
|
|
98
|
-
}
|
|
99
|
-
},
|
|
120
|
+
onReceiveStatus,
|
|
100
121
|
});
|
|
101
|
-
|
|
102
|
-
|
|
122
|
+
call.sendMessage(savedSendMessage);
|
|
123
|
+
call.halfClose();
|
|
124
|
+
};
|
|
125
|
+
const onReceiveStatus = (status) => {
|
|
126
|
+
if (retryOptions.retryableDecider(attempt, status)) {
|
|
127
|
+
setTimeout(retry, retryOptions.delayFunction(attempt, status));
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
savedMessageNext(savedReceiveMessage);
|
|
131
|
+
// TODO: For reasons that are completely unclear to me, if you pass a handcrafted
|
|
132
|
+
// status object here, node will magically just exit at the end of this line.
|
|
133
|
+
// No warning, no nothing. Here be dragons.
|
|
134
|
+
next(status);
|
|
135
|
+
}
|
|
103
136
|
};
|
|
104
|
-
|
|
105
|
-
setTimeout(() => retry(savedSendMessage, savedMetadata), backOffAmount(retries));
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
savedMessageNext(savedReceiveMessage);
|
|
109
|
-
next(status);
|
|
110
|
-
}
|
|
137
|
+
onReceiveStatus(status);
|
|
111
138
|
})
|
|
112
139
|
.build();
|
|
113
|
-
next(metadata,
|
|
140
|
+
next(metadata, listener);
|
|
114
141
|
})
|
|
115
142
|
.withSendMessage((message, next) => {
|
|
116
143
|
savedSendMessage = message;
|
package/lib/grpc-retry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-retry.js","sourceRoot":"","sources":["../src/grpc-retry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"grpc-retry.js","sourceRoot":"","sources":["../src/grpc-retry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+G;AAC/G,oDAAsC;AA0DtC;;GAEG;AACH,SAAS,yBAAyB,CAAC,EACjC,WAAW,EACX,MAAM,EACN,SAAS,EACT,iBAAiB,GACO;IACxB,OAAO;QACL,WAAW,EAAE,WAAW,IAAI,EAAE;QAC9B,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,SAAS,EAAE,SAAS,IAAI,GAAG;QAC3B,iBAAiB,EAAE,iBAAiB,IAAI,wBAAwB;QAChE,aAAa;YACX,OAAO,KAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,UAAmC,EAAE;IAC3E,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAChH,OAAO;QACL,aAAa,CAAC,OAAO,EAAE,MAAM;YAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5G,CAAC;QACD,gBAAgB,CAAC,OAAO,EAAE,MAAM;YAC9B,OAAO,OAAO,GAAG,WAAW,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC;AAVD,0DAUC;AAED;;GAEG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,OAAO;IACnB,IAAI,CAAC,MAAM,CAAC,kBAAkB;IAC9B,IAAI,CAAC,MAAM,CAAC,WAAW;IACvB,IAAI,CAAC,MAAM,CAAC,OAAO;IACnB,IAAI,CAAC,MAAM,CAAC,SAAS;IACrB,IAAI,CAAC,MAAM,CAAC,YAAY;CACzB,CAAC,CAAC;AAEH,SAAgB,gBAAgB,CAAC,MAAoB;IACnD,OAAO,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAFD,4CAEC;AAED;;GAEG;AACH,SAAS,MAAM,CAAC,GAAW;IACzB,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAAC,EAAE,IAAI,EAAgB;IACtD,qCAAqC;IACrC,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAC3C,OAAO,IAAI,CAAC;KACb;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,YAA8B;IACrE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QAC3B,IAAI,gBAAqB,CAAC;QAC1B,IAAI,mBAAwB,CAAC;QAC7B,IAAI,gBAAwC,CAAC;QAE7C,MAAM,SAAS,GAAG,IAAI,0BAAgB,EAAE;aACrC,SAAS,CAAC,UAAU,QAAQ,EAAE,SAAS,EAAE,IAAI;YAC5C,gBAAgB;YAChB,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,MAAM,QAAQ,GAAG,IAAI,yBAAe,EAAE;iBACnC,oBAAoB,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBACtC,mBAAmB,GAAG,OAAO,CAAC;gBAC9B,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC,CAAC;iBACD,mBAAmB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACpC,MAAM,KAAK,GAAG,GAAG,EAAE;oBACjB,OAAO,EAAE,CAAC;oBACV,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC/B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;wBACnB,gBAAgB,CAAC,OAAO;4BACtB,mBAAmB,GAAG,OAAO,CAAC;wBAChC,CAAC;wBACD,eAAe;qBAChB,CAAC,CAAC;oBACH,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;oBACnC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,CAAC,CAAC;gBAEF,MAAM,eAAe,GAAG,CAAC,MAAoB,EAAE,EAAE;oBAC/C,IAAI,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;wBAClD,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;qBAChE;yBAAM;wBACL,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;wBACtC,iFAAiF;wBACjF,6EAA6E;wBAC7E,2CAA2C;wBAC3C,IAAI,CAAC,MAAM,CAAC,CAAC;qBACd;gBACH,CAAC,CAAC;gBAEF,eAAe,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC,CAAC;iBACD,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3B,CAAC,CAAC;aACD,eAAe,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YACjC,gBAAgB,GAAG,OAAO,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,CAAC;QAChB,CAAC,CAAC;aACD,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,0BAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AAtDD,4DAsDC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -8,12 +8,11 @@
|
|
|
8
8
|
* <!--SNIPEND-->
|
|
9
9
|
* @module
|
|
10
10
|
*/
|
|
11
|
-
export { ActivityFailure, ApplicationFailure, CancelledFailure, ChildWorkflowFailure, DataConverter, defaultPayloadConverter, ProtoFailure, ServerFailure, TemporalFailure, TerminatedFailure, TimeoutFailure, } from '@temporalio/common';
|
|
12
|
-
export { TLSConfig } from '@temporalio/internal-non-workflow
|
|
13
|
-
export
|
|
14
|
-
export * from '@temporalio/
|
|
15
|
-
export * from '@temporalio/
|
|
16
|
-
export * from '@temporalio/internal-workflow-common/lib/workflow-handle';
|
|
11
|
+
export { ActivityFailure, ApplicationFailure, CancelledFailure, ChildWorkflowFailure, DataConverter, defaultPayloadConverter, ProtoFailure, RetryPolicy, ServerFailure, TemporalFailure, TerminatedFailure, TimeoutFailure, } from '@temporalio/common';
|
|
12
|
+
export { TLSConfig } from '@temporalio/common/lib/internal-non-workflow';
|
|
13
|
+
export * from '@temporalio/common/lib/errors';
|
|
14
|
+
export * from '@temporalio/common/lib/interfaces';
|
|
15
|
+
export * from '@temporalio/common/lib/workflow-handle';
|
|
17
16
|
export * from './async-completion-client';
|
|
18
17
|
export * from './client';
|
|
19
18
|
export { Connection, ConnectionOptions, ConnectionOptionsWithDefaults, LOCAL_TARGET } from './connection';
|
package/lib/index.js
CHANGED
|
@@ -35,9 +35,9 @@ Object.defineProperty(exports, "ServerFailure", { enumerable: true, get: functio
|
|
|
35
35
|
Object.defineProperty(exports, "TemporalFailure", { enumerable: true, get: function () { return common_1.TemporalFailure; } });
|
|
36
36
|
Object.defineProperty(exports, "TerminatedFailure", { enumerable: true, get: function () { return common_1.TerminatedFailure; } });
|
|
37
37
|
Object.defineProperty(exports, "TimeoutFailure", { enumerable: true, get: function () { return common_1.TimeoutFailure; } });
|
|
38
|
-
__exportStar(require("@temporalio/
|
|
39
|
-
__exportStar(require("@temporalio/
|
|
40
|
-
__exportStar(require("@temporalio/
|
|
38
|
+
__exportStar(require("@temporalio/common/lib/errors"), exports);
|
|
39
|
+
__exportStar(require("@temporalio/common/lib/interfaces"), exports);
|
|
40
|
+
__exportStar(require("@temporalio/common/lib/workflow-handle"), exports);
|
|
41
41
|
__exportStar(require("./async-completion-client"), exports);
|
|
42
42
|
__exportStar(require("./client"), exports);
|
|
43
43
|
var connection_1 = require("./connection");
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;AAEH,6CAa4B;AAZ1B,yGAAA,eAAe,OAAA;AACf,4GAAA,kBAAkB,OAAA;AAClB,0GAAA,gBAAgB,OAAA;AAChB,8GAAA,oBAAoB,OAAA;AAEpB,iHAAA,uBAAuB,OAAA;AAGvB,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,2GAAA,iBAAiB,OAAA;AACjB,wGAAA,cAAc,OAAA;AAGhB,gEAA8C;AAC9C,oEAAkD;AAClD,yEAAuD;AACvD,4DAA0C;AAC1C,2CAAyB;AACzB,2CAA0G;AAAjG,wGAAA,UAAU,OAAA;AAAoD,0GAAA,YAAY,OAAA;AACnF,2CAAyB;AACzB,+CAA6B;AAC7B,iDAA+B;AAC/B,0CAAwB;AACxB,oDAAkC;AAClC,qDAAmC"}
|
package/lib/interceptors.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import { Headers, Next } from '@temporalio/
|
|
6
|
+
import { Headers, Next } from '@temporalio/common';
|
|
7
7
|
import { temporal } from '@temporalio/proto';
|
|
8
8
|
import { DescribeWorkflowExecutionResponse, RequestCancelWorkflowExecutionResponse, TerminateWorkflowExecutionResponse, WorkflowExecution } from './types';
|
|
9
9
|
import { CompiledWorkflowOptions } from './workflow-options';
|
package/lib/types.d.ts
CHANGED
package/lib/workflow-client.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { status as grpcStatus } from '@grpc/grpc-js';
|
|
2
2
|
import { DataConverter, LoadedDataConverter } from '@temporalio/common';
|
|
3
|
-
import { BaseWorkflowHandle, QueryDefinition,
|
|
3
|
+
import { BaseWorkflowHandle, QueryDefinition, WithWorkflowArgs, Workflow, WorkflowResultType } from '@temporalio/common';
|
|
4
|
+
import { Replace } from '@temporalio/common/lib/type-helpers';
|
|
4
5
|
import { temporal } from '@temporalio/proto';
|
|
5
6
|
import { WorkflowCancelInput, WorkflowClientCallsInterceptor, WorkflowClientInterceptors, WorkflowDescribeInput, WorkflowQueryInput, WorkflowSignalInput, WorkflowSignalWithStartInput, WorkflowStartInput, WorkflowTerminateInput } from './interceptors';
|
|
6
7
|
import { ConnectionLike, DescribeWorkflowExecutionResponse, Metadata, RequestCancelWorkflowExecutionResponse, TerminateWorkflowExecutionResponse, WorkflowExecution, WorkflowExecutionDescription, WorkflowService } from './types';
|